sed

Материал из Xgu.ru

Перейти к: навигация, поиск

sed (stream editor, редактор потока) — один из инструментов командной строки UNIX, предназначенный для обработки текстовых данных. Чаще всего используется с регулярными выражениями. Оказал влияние на язык программирование Perl.

Наиболее популярные операции, выполняемые с помощью sed:

  • замена текста;
  • удаление строк.

Наиболее популярная операция sed, из-за которой в подавляющем большинстве случае sed и используется, это замена.

 s/было/стало/g

В этом случае все вхождения слова было в текст заменятся на слово стало. Все вхождения, потому что указан модификатор g, глобальная замена.

Замена по умолчанию выполняется в потоке. Это означает что данные считываются со стандартного потока ввода, модифицируются и отправляются на стандартный поток вывода. Если необходимо изменить данные в файле, нужно выполнять так называемую inplace-замену, ключ -i.

Пример inplace-замены: заменяем в файле /dir/config строку eth3 на eth0:

 sed -i s/eth3/eth0/ /dir/config

Такая же замена во всех файлах с расширением .txt в каталоге /root/:

 find /dir -name \*txt -exec sed -i s/eth3/eth0/ {} \;

Или без -exec:

sed -i s/eth3/eth0/ $(find /dir -name \*txt)

[править] Дополнительная информация

Источник — «http://xgu.ru:81/wiki/sed»