
Вопрос 16
Потоковый редактор sed. Основные команды и примеры использования.
Потоковый редактор sed
Команда имеет формат:
sed [ -n ] [ -e script ] [ -f sfile ] [ files ]
Команда копирует файлы (по умолчанию со стандартного входа) на стандартный выход, редактирует их в соответствии со своими(!) командами, размещенными в "script" (в командном файле или строке редактора [а не shell!]). По флагу "-f" берет берет файл команд из файла "sfile"; Если есть только опция "-e script", то флаг "-e" можно опустить. Флаг "-n" подавляет вывод (происходящий по умолчанию). "script" состоит из команд редактирования, по одной в строке, имеющих формат:
[ addr [ , addr ] ] cmd [ args ]
"sed" циклически преобразует входные строки в выходные.
Основные команды
[адрес] a текст - добавить новую строку с текстом после указанной строки
[адрес [, адрес]] c текст - Удаляет выбранные строки и заменяет их на текст
[адрес [, адрес]] d - Удаляет указанные строки
[адрес] i текст - Вставить текст на место указанной строки
[адрес] q - выход из sed
[адрес [, адрес]] r файл - Читает файл и выдает его содержание на выход.
[адрес [, адрес]] s/регулярное_выражение/замена/флаги - Заменяет регулярное_выражение назамена-у с учётом флагов:
g - во всей строке
i - без учёта регистра
p - выводить результат замены
Вопрос 17
Потоковый редактор sed. Использование круглых скобок.
В рот топтал эти скобки. Нет о них ничего в инете.
Вопрос 18
Принцип работы этой программы сходен с принципом работы программы sed, но синтаксически она ближе к языку программирования Си, чем к текстовому редактору. Способ задания команды такой же, как и для sed:
$ awk 'программа' имена_файлов...
но программа другая:
шаблон {действие}
шаблон {действие}
Программа awk читает входной поток по одной строке из указанных файлов. Строки сопоставляются с шаблонами по порядку; для каждого шаблона, соответствующего строке, выполняется необходимое действие. Как и в редакторе sed, входные файлы здесь не изменяются.
В программе awk каждая входная строка автоматически разбивается на поля, т. е. последовательности символов без пробелов, разделенные пробелами и символами табуляции