Список деяких команд для sed:
Знайти в файлі символ / та видалити його і всі символи після:
sed 's/\/.*//' aptlist.txt
Знайти в директорії та у всіх вкладених директоріях файли *.webp.webp й перейменувати на *.webp:
for f in *.webp.webp; do mv -i $f "$(sed -e 's/.webp.webp/.webp/' <<< "$f")"; done
Знайти в директорії та у всіх вкладених директоріях файли md й у 4му рядку після пробілу замінити першу букву слова на велику:
find -name '*.md' -exec sed -i -E '4 s/\ (.*)/ \u\1/g' "{}" \;
Знайти в директорії та у всіх вкладених директоріях файли md й видалити 3й рядок:
find -name '*.md' -exec sed -i -e '3d' "{}" \;
Знайти в директорії та у всіх вкладених директоріях файли md й вставити 3м рядком три мінуса:
find -name '*.md' -exec sed -i -e '3i---' "{}" \;
Знайти в директорії та у всіх вкладених директоріях файли txt й замінити в них один текст на інший:
find -name '*.txt' -exec sed -i -e 's/що замінити/на що замінити/i' "{}" \;
У файлі test вставити слово ТЕКСТ на початку кожного рядка:
sed 's/^/текст/' test
У файлі test з’єднати рядки попарно(як варіант видалення порожніх рядків). Класичний приклад, зараз чомусь ще й видаляє перший символ кожного рядка:
sed '$!N;s/\n/ /' test
У файлі test витерти порожні рядки. Класичний приклад, без \s* перед $, що гуляє всіма інтернетами, зараз чомусь не спрацьовує.
sed '/^\s*$/d' test
У файлі test в кінці рядка дописати КІНЕЦЬ РЯДКА. Класичний приклад, без \s* перед $, що гуляє всіма інтернетами, зараз чомусь не спрацьовує.
sed 's/\s*$/ кінець рядка/g' test
У файлі test через кожні 2 символи написати ВСТАВКА:
sed 's/\(..\)/\1ВСТАВКА/g' test
У файлі test замінити 2+ пробілів одним, ( )+ можна заміняти на пробілпробіл*:
sed 's/\( \)\+/ /g' test
sed 's/ */ /g' test
У файлі test вставити пробіл після кожного символу:
sed 's/\(\)\+/ /g' test
У файлі test витерти пробіли в кінці рядків:
sed 's/ *$//' test
У файлі test витерти пробіл перед крапками чи витерти всі пробіли перед крапками:
sed 's/ \./\./g' test
sed 's/\( \)\+\./\./g' test
або ( )+ можна заміняти на пробіл* :
sed 's/ *\./\./g' test
У файлі test витерти пробіл перед комами чи витерти всі пробіли перед комами:
sed 's/ ,/,/g' test
sed 's/\( \)\+,/,/g' test
sed 's/ *,/,/g' test
У файлі test додати в кінці рядків крапку якщо її немає.
sed 's/[^\.]$/./' test
Хитрий набір команд бере файл file_list що є файлом який містить список файлів та тек створеним у Total Commander і робить з нього список в один рядок:
sed -i 's/.$//' file_list
cat file_list | tr '\n' ' ' > test
cat test | tr '[:upper:]' '[:lower:]' > file_list
sed -i 's/\\/,/g;s/\( \)\+/ /g;s/, $//' file_list
rm test