[[ sed - примеры ]]

sed - примеры

Замена

  • Простая замена

sed 's/было/стало/g' -i file.txt

Ключ '-i' для записи изменений в файле

  • Заменить значение option=NO на YES:

sed '/^option=/s:NO:YES:' file.txt

  • Заменить значение option=«NO» на YES:

sed 's/^\([ \t]*option="\)\(NO\)"/\1YES"/' file.txt

  • Замена только в строках начинающихся со слова Start:

sed '/^Start/s/было/стало/g' file.txt

  • Замена только в строках не содержащих @:

sed '/@/b; s/было/стало/g' file.txt

  • Замена в тексте символов '\n' на переход на новую строку

sed 's/\\n/\n/g' file.txt

Фильтры

  • Печать файла без пустых строк или строк содержащих только пробелы:

sed '/^ *$/d' file.txt

  • Печать файла без пустых строк или строк содержащих только пробелы и/или табуляции

sed '/^[ \t]*$/d' file.txt

  • Печать файла без комментариев и пустых строк:

sed '/^ *#/d; /^[ \t]*$/d' file.txt

  • Печать определенных строк:

# Вывести только 3-тью строку:
sed -n '3p' file.txt
# Вывести со 2 по 5 стоку:
sed -n '2,5p' file.txt

  • Печать файла без последней строки

  sed '$d' file.txt

Вставка

Вставить строку, после строки с указанным номером

$ seq 4 | sed '3a text'
1
2
3
text
4

Вставить строку, перед строкой с указанным номером

$ seq 4 | sed '3i text'
1
2
text
3
4

Вставить строку, после строки, где найдено совпадения

sed '/^pattern/i text' file.txt

Поиск

Получить значение опции APACHE2_OPTS=«value»

sed '/^[ \t]*APACHE2_OPTS=/!d; s/^[ \t]*APACHE2_OPTS="\(.*\)"/\1/' /etc/conf.d/apache2






Обсуждение

Ваш комментарий. Вики-синтаксис разрешён:
237 +6 =
 
practice/bash/bash_sed_sample.txt · Последнее изменение: 2024/04/02 17:14 — lexa
Gentoo Linux Gentoo Linux Driven by DokuWiki