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

Если вместо показанного результата будет выдано сообщение об ошибке "command not found" (команда не найдена), значит, переменная среды $PATH, которая содержит список имен каталогов, просматриваемых в поиске исполняемых файлов, не включает имя текущего каталога. В этом случае необходимо явно указать, что исполняемый файл находится в текущем каталоге:

$ ./append.sed quote.txt

Рассмотрим, что делает сценарий append.sed. Первая его строка является системной командой, которая указывает, какая программа выполняет данный сценарий. Формат этой команды мы уже рассматривали при знакомстве с файлами сценариев awk в предыдущей главе. Как и утилита awk, редактор sed, как правило, находится в каталоге /bin.

Далее в сценарии находится команда а, которая ищет во входном файле строку, содержащую слово "company", и вставляет после нее предложение "Then suddenly it happened".

<p><strong>10.8. Вставка текста (команда i)</strong></p>

Команда i (insert) аналогична команде а, только вставляет текст не после, а перед адресуемой строкой. Как и при добавлении текста, допускается указание только одного шаблона адреса. Ниже приведен общий формат команды:

[адрес]i\

текст\ текст\

текст

В следующем сценарии предложение "Utter contusion followed" вставляется перед строкой, содержащей слово "attendance":

$ cat insert.sed

#! /bin/sed -f /attendance/i\ "Utter confusion followed.

Результаты работы данного сценария будут такими:

$ insert.sed 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.

Utter confusion followed.

The local nurse Miss P. Neave was in attendance.

Для указания места вставки текста можно было бы воспользоваться номером строки, в данном случае 4:

#!/bin/sed -f

4i\

Utter confusion followed.

<p><strong>10.9. Изменение текста (команда с)</strong></p>

Команда с (change) заменяет новым текстом каждую адресуемую строку. Если выбрана группа строк, вся группа заменяется одной копией текста. Формат команды с таков:

[адрес1[,адрес2]]c\ текст\

текст\

текст

В следующем примере первая строга файла quote.txt заменяется новой строкой:

$ cat change.sed

#! /bin/sed -f

1c\

The Office Dibble band played well.

Прежде чем выполнять этот сценарий, не забудьте сделать его исполняемым:

$ chmod u+x change.sed $ change.sed quote.txt

The Office Dibble band played well. 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.

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

$ cat mix.sed

#! /bin/sed -f

# Изменяем строку номер 1

1c\

The Dibble band were grooving.

# Вставляем строку

/evening/i\

They played some great tunes.

# Изменяем последнюю строку

3c\

Nurse Neave was too tipsy to help.

# Добавляем строку после строки номер 3

3a\

Вот что получится в результате выполнения этого сценария:

$ mix.sed quote.txt

The Dibbse band were grooving.

They played some great tunes.

It was an evening of splendid music and company

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

Where was the nurse to help?

Nurse Neave was too tipsy to help.

<p><strong>10.10. Удаление текста (команда d)</strong></p>

Для удаления текста предназначена команда d (delete), имеющая следующий

формат:

'адрес1[, адрес2]'d

Адрес может быть указан в виде номера строки или регулярного выражения. Рассмотрим примеры. В первом из них будет удалена первая строка входного

файла:

$ sed '1d' quote.txt

It was an evening of splendid music and company.

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

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

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

112 страниц про Париж. Опыт создания путеводителя (в помощь самостоятельным туристам)
112 страниц про Париж. Опыт создания путеводителя (в помощь самостоятельным туристам)

  По Парижу приятно гулять, бесцельно бродить, кружить по узким улочкам, отдыхать в маленьких кафе и в парках у фонтанов. Здесь есть все для любителей архитектуры, ценителей живописи, театралов, меломанов, гурманов, поклонников всевозможных развлечений. Париж притягивает, удивляет, очаровывает, постепенно приоткрывая тайны любознательному гостю, который теряется от сложности выбора: что же увидеть прямо сейчас, а что отложить на потом. Мои 112 страниц про Париж, надеюсь, помогут сделать этот выбор. Предложенные 7 прогулок по городу включают в себя не только известные всему миру достопримечательности, но и множество других, которые часто остаются за пределами стандартных туристических маршрутов.  

Елена Р Стамбулян , Елена Р. Стамбулян

Руководства / Путеводители / Словари и Энциклопедии
40+. Уход за телом
40+. Уход за телом

Женщина после 40 лет – настоящая богиня, умудренная опытом и оттого еще более прекрасная. Но чтобы надолго сохранить красоту и молодость, нужно постоянно собой заниматься: ухаживать за своим телом, руками и ногами, выполнять физические упражнения и соблюдать диету. Благодаря этой книге вы научитесь самостоятельно готовить омолаживающие, питательные, увлажняющие кремы и маски, а также скрабы и пилинги из натуральных продуктов; выполнять легкие и эффективные упражнения для стройной фигуры и профилактики варикозного расширения вен, делать массаж рук и ног, навсегда избавитесь от целлюлита и сможете легко ориентироваться в выборе омолаживающих процедур в СПА-салонах и хирургических операций в клиниках красоты. Правила здорового питания, популярные диеты и рецепты полезных блюд – в этой книге есть все, что поможет 40-летним женщинам всегда быть в форме.

Анастасия Витальевна Колпакова

Здоровье / Руководства / Здоровье и красота / Дом и досуг / Словари и Энциклопедии