Алгоритм работы программы sed
Программа sed - это потоковый редактор, получающий данные из стандартного ввода, изменяющий их в соответствии с инструкциями из командного файла и записывающий результирующий поток в стандартный вывод.
Если вы не создадите командный файл и не укажете флаги для команды sed, то программа sed скопирует стандартный ввод в стандартный вывод без изменений. Входные данный для этой программы поступают из двух источников:
| Программа | Описание |
|---|---|
| Поток ввода | Поток символов ASCII из файлов или непосредственно с клавиатуры. Эти данные будут отредактированы программой. |
| Команды | Набор адресов и связанных команд, указанных для выполнения в
следующем формате: Параметры Строка1 и Строка2
называются адресами. Они могут представлять собой шаблоны, по которым
будет выполнен поиск во входных данных, или номера строк входного
потока. |
Команды редактирования можно вводить вместе с командой sed с помощью флага -e.
Команда sed построчно считывает входной поток данных в область памяти, называемую областью шаблона. После помещения строки данных в область шаблона sed считывает командный файл и сравнивает адреса в командном файле с символами этой строки. Если будет встречено совпадение, то sed выполнит связанную с данным адресом команду над символами области шаблона. В результате выполнения команды содержимое области шаблона будет изменено и передано на вход последующих команд.
Сравнив все адреса, указанные в командном файле, с содержимым области шаблона, программа sed записывает итоговое содержимое области шаблона в стандартный вывод. После этого из стандартного ввода считывается следующая строка и повторяется процесс, задаваемый командным файлом.
Некоторые команды редактирования изменяют описанную последовательность действий.
На способ выполнения команды sed влияют и заданные вместе с ней флаги.