Linux и UNIX: программирование в shell. Руководство разработчика
вернуться

Тейнсли Дэвид

Шрифт:

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

10.2.2. Синтаксис команд

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

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

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

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

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

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

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

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

Адрес

Отбираемые строки

нет адреса

Все строки входного файла

X

Строка с номером x

х, у

Все строки с номерами в диапазоне от x до y

/шаблон/

Все строки, соответствующие шаблону

/шаблон1/, /шаблон 2/

Группа строк, начиная от строки, соответствующей первому шаблону, и заканчивая строкой, которая соответствует второму шаблону; подобных групп во входном файле может быть несколько

/шаблон/,х

Группа строк, начиная от строки, соответствующей шаблону, и заканчивая строкой с указанным номером

x,/шаблон/

Группа строк, начиная от строки с указанным номером и заканчивая строкой, соответствующей шаблону

!

Все строки, не соответствующие заданному адресу

$

Последняя строка входного файла

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

10.2.3. Основные команды редактирования

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

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

p

Вывод адресуемых строк

ж

Вывод номеров адресуемых строк

а

Добавление заданного текста после каждой адресуемой строки

i

Вставка заданного текста перед каждой' адресуемой строкой

с

Замена адресуемого текстового блока заданным текстом

d

Удаление адресуемых строк

s

Замена указанного шаблона заданным текстом в каждой адресуемой строке

w

Добавление адресуемых строк в указанный файл

r

Чтение текста из указанного файла и добавление его после каждой адресуемой строки

q

Завершение работы после того, как достигнута адресуемая строка

l

Вывод адресуемых строк с отображением непечатаемых символов в виде ASCII-

кодов и переносом длинных строк

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

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

командаN

}

или

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

В первом случае каждая команда записывается в отдельной строке, а разделителем команд является символ новой строки. Во втором случае команды записываются последовательно, отделяясь друг от друга точкой с запятой, которая ставится также после завершающей команды.

Ниже приведен текстовый файл quote.txt, который используется во многих примерах данной главы:

$ cat quote.txt

The honeysuckle band played all night long for only $90.

It was an evening of splendid music and company.

Too bad the disco floor fell through at 23:10.

The local nurse Miss P. Neave was in attendance.

10.3. Регулярные выражения

Редактор sed распознает базовые регулярные выражения, которые мы уже рассматривали в главе 7. Дополнительные особенности появляются только в шаблонах поиска и замены в команде s. С помощью операторов \ ( и \) можно сохранить до девяти шаблонов поиска во временном буфере, с тем чтобы в шаблоне замены обратиться к ним с помощью оператора \n, где п — номер сохраненного шаблона. Метасимвол & позволяет в шаблоне замены сослаться на фрагмент строки, соответствующий шаблону поиска.

  • Читать дальше
  • 1
  • ...
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • ...

Private-Bookers - русскоязычная библиотека для чтения онлайн. Здесь удобно открывать книги с телефона и ПК, возвращаться к сохраненной странице и держать любимые произведения под рукой. Материалы добавляются пользователями; если считаете, что ваши права нарушены, воспользуйтесь формой обратной связи.

Полезные ссылки

  • Моя полка

Контакты

  • help@private-bookers.win