Приклади використання Stream EDitor.

sed logo
Список деяких команд для 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