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)
[править] Дополнительная информация
- Sed by example (англ.)
Интерфейс командной строки | |
---|---|
Основы | Потоки ввода/вывода • Командная строка |
Пользовательское окружение | Оболочка интерпретатора • Приглашение командного интерпретатора • bash_completion • shopt |
Скриптинг | Скриптинг • Интерпретатор • Shebang • Shell-скриптинг • shell-framework • expect • awk • sed |