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

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

Шрифт:

#!/bin/sed -f

4i\

Utter confusion followed.

10.9. Изменение текста (команда с)

Команда с (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.

10.10. Удаление текста (команда d)

Для удаления текста предназначена команда 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.

The local nurse Miss P. Neave was in attendance.

В следующем примере удаляются строки 1—3:

$ sed '1,3d' quote.txt

The local nurse Miss P. Neave was in attendance.

В этом примере удаляется последняя строка:

$ sed '$d' 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.

Можно также удалить строку, в которой найдено совпадение с регулярным

выражением. В показанном ниже примере удаляется строка, содержащая слово '"Neave":

$ sed '/Neave/d' 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.

10.11. Замена подстроки (команда s)

Команда s (substitute) осуществляет во всех адресуемых строках замену подстроки, соответствующей заданному шаблону, указанной подстрокой. Формат команды

таков:

[адрес1[, адрес2]]s/шаблои_поиска/шаблбон_замены/[флаги]

Ниже перечислены возможные флаги:

g

Замена в адресуемой строке каждой подстроки, соответствующей шаблону (по умолчанию заменяется лишь самая первая подстрока каждой адресуемой строки)

n

Замена n–й подстроки, соответствующей шаблону (n — любое число в диапазоне от 1 до 512)

p

Вывод на экран строки, в которой была произведена замена; если в строке сделано несколько замен, она будет отображена соответствующее число раз

w имя_файла

Запись измененной строки в указанный файл

В следующем примере осуществляется замена слова "night" словом "NIGHT":

$ sed -n 's/night/NIGHT/p' quote.txt

  • Читать дальше
  • 1
  • ...
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • ...

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

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

  • Моя полка

Контакты

  • help@private-bookers.win