-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; }