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
Обсуждение