-n Запрет вывода на экран. При наличии этой опции редактор sed не будет записывать обрабатываемые им строки в стандартный выходной поток, тогда как по умолчанию отображается каждая входная строка. Осуществить вывод нужной строки можно будет только с помощью команды p (рассматривается ниже).

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

-f Эта опция используется при подключении файла сценария.

<p><emphasis><strong>10.2.1. Сохранение выходных данных</strong></emphasis></p>

Если требуется сохранить проделанные изменения, просто перенаправьте результаты работы редактора sed в файл, как показано ниже:

$ sed 'команды' входной_файл > выходной_файл

<p><emphasis><strong>10.2.2. Синтаксис команд</strong></emphasis></p>

Общий синтаксис команд редактора sed таков:

[адрес1 [, адрес2] ] [ ! ] команда [аргументы]

Команда состоит из одной буквы или одного символа (Список основных команд представлен ниже). Аргументы требуются лишь нескольким командам, в частности, команде s. Элементы, представленные в квадратных скобках, являются необязательными, а сами скобки набирать не нужно.

Просмотр входного файла по умолчанию начинается с первой строки. Существует два способа адресации строк:

   1. По номерам.

   2. С помощью регулярных выражений (о них рассказывалось в главе 7).

В команде может быть указано два адреса, один адрес или ни одного адреса. В следующей таблице описаны все возможные правила отбора строк в зависимости от того, сколько компонентов адреса задано (табл. 10.1).

Таблица 10.1. Правила отбора строк в редакторе sed

АдресОтбираемые строки
нет адресаВсе строки входного файла
XСтрока с номером x
х, уВсе строки с номерами в диапазоне от x до y
/шаблон/Все строки, соответствующие шаблону
/шаблон1/, /шаблон 2/Группа строк, начиная от строки, соответствующей первому шаблону, и заканчивая строкой, которая соответствует второму шаблону; подобных групп во входном файле может быть несколько
/шаблон/,хГруппа строк, начиная от строки, соответствующей шаблону, и заканчивая строкой с указанным номером
x,/шаблон/Группа строк, начиная от строки с указанным номером и заканчивая строкой, соответствующей шаблону
!Все строки, не соответствующие заданному адресу
$Последняя строка входного файла

Некоторые команды, в частности, a, i, r, q и =, требуют указания только одного адреса.

<p><emphasis><strong>10.2.3. Основные команды редактирования</strong></emphasis></p>

Ниже представлен список основных команд, имеющихся в редакторе sed (табл. 10.2).

Таблица 10.2. Основные команды sed

pВывод адресуемых строк
жВывод номеров адресуемых строк
аДобавление заданного текста после каждой адресуемой строки
iВставка заданного текста перед каждой' адресуемой строкой
сЗамена адресуемого текстового блока заданным текстом
dУдаление адресуемых строк
sЗамена указанного шаблона заданным текстом в каждой адресуемой строке
wДобавление адресуемых строк в указанный файл
rЧтение текста из указанного файла и добавление его после каждой адресуемой строки
qЗавершение работы после того, как достигнута адресуемая строка
lВывод адресуемых строк с отображением непечатаемых символов в виде ASCII-
кодов и переносом длинных строк

С помощью фигурных скобок можно объединить несколько команд в группу. Возможны два синтаксиса группировки:

[адрес1[, адрес2]]{ команда 1

командаN

}

или

[адрес1[,адрес2]] {команда1; …командаN; }

Перейти на страницу:

Похожие книги