-n Запрет вывода на экран. При наличии этой опции редактор sed не будет записывать обрабатываемые им строки в стандартный выходной поток, тогда как по умолчанию отображается каждая входная строка. Осуществить вывод нужной строки можно будет только с помощью команды p (рассматривается ниже).
-e Следующей командой будет команда редактирования. Эта опция используется в том случае, когда команд редактирования несколько. Если же имеется только одна такая команда, то указывать данную опцию не нужно, хотя ее наличие и не является ошибкой.
-f Эта опция используется при подключении файла сценария.
Если требуется сохранить проделанные изменения, просто перенаправьте результаты работы редактора sed в файл, как показано ниже:
$ sed 'команды' входной_файл > выходной_файл
Общий синтаксис команд редактора sed таков:
[адрес1 [, адрес2] ] [ ! ] команда [аргументы]
Команда состоит из одной буквы или одного символа (Список основных команд представлен ниже). Аргументы требуются лишь нескольким командам, в частности, команде s. Элементы, представленные в квадратных скобках, являются необязательными, а сами скобки набирать не нужно.
Просмотр входного файла по умолчанию начинается с первой строки. Существует два способа адресации строк:
1. По номерам.
2. С помощью регулярных выражений (о них рассказывалось в главе 7).
В команде может быть указано два адреса, один адрес или ни одного адреса. В следующей таблице описаны все возможные правила отбора строк в зависимости от того, сколько компонентов адреса задано (табл. 10.1).
Таблица 10.1. Правила отбора строк в редакторе sed
| Адрес | Отбираемые строки |
| нет адреса | Все строки входного файла |
| X | Строка с номером x |
| х, у | Все строки с номерами в диапазоне от x до y |
| /шаблон/ | Все строки, соответствующие шаблону |
| /шаблон1/, /шаблон 2/ | Группа строк, начиная от строки, соответствующей первому шаблону, и заканчивая строкой, которая соответствует второму шаблону; подобных групп во входном файле может быть несколько |
| /шаблон/,х | Группа строк, начиная от строки, соответствующей шаблону, и заканчивая строкой с указанным номером |
| x,/шаблон/ | Группа строк, начиная от строки с указанным номером и заканчивая строкой, соответствующей шаблону |
| ! | Все строки, не соответствующие заданному адресу |
| $ | Последняя строка входного файла |
Некоторые команды, в частности, a, i, r, q и =, требуют указания только одного адреса.
Ниже представлен список основных команд, имеющихся в редакторе sed (табл. 10.2).
Таблица 10.2. Основные команды sed
| p | Вывод адресуемых строк |
| ж | Вывод номеров адресуемых строк |
| а | Добавление заданного текста после каждой адресуемой строки |
| i | Вставка заданного текста перед каждой' адресуемой строкой |
| с | Замена адресуемого текстового блока заданным текстом |
| d | Удаление адресуемых строк |
| s | Замена указанного шаблона заданным текстом в каждой адресуемой строке |
| w | Добавление адресуемых строк в указанный файл |
| r | Чтение текста из указанного файла и добавление его после каждой адресуемой строки |
| q | Завершение работы после того, как достигнута адресуемая строка |
| l | Вывод адресуемых строк с отображением непечатаемых символов в виде ASCII- |
| кодов и переносом длинных строк |
С помощью фигурных скобок можно объединить несколько команд в группу. Возможны два синтаксиса группировки:
[адрес1[, адрес2]]{ команда 1
командаN
}
или
[адрес1[,адрес2]] {команда1; …командаN; }