ed - текстовый редактор
ed [-s] [-p приглашение] [файл]
Текстовый редактор ed является стандартным для UNIX систем. Если в командной строке задан файл, он считывается в буфер (как будто была выполнена команда e, см. ниже) и его можно редактировать.
Опциям команды ed приписан следующий смысл:
Подавить печать количества символов при выполнении команд e, r и w, выдачу диагностики команд e и q и префикса ! после выполнения конструкции !команда. |
Задать в качестве приглашения свою цепочку символов. |
Редактор ed работает с копией файла; изменения, производимые над копией, отображаются на файл только после выполнения команды записи w. Копия текста размещается редактором во временном файле, называемом буфером. Буфер только один.
Редактор поддерживает спецификацию формата текстового файла [см. ]. Если первая строка редактируемого файла содержит спецификацию формата, а у терминала, с которого вызван ed, задана характеристика -tabs или tab3 [см. ], то при просмотре файла нужные позиции табуляции будут установлены автоматически. Например, если в первой строке файла содержится:
то позиции табуляции будут установлены в колонках 5, 10, 15, а максимальная длина строки составит 72. Отметим, что при вводе текста, независимо от спецификации формата, происходит замена символов табуляции пробелами до ближайшей колонки, кратной восьми.
Команды ed имеют простую и регулярную структуру: ноль, один или два адреса предшествуют односимвольной команде, после которой могут располагаться ее аргументы. Адреса задают одну или несколько строк из буфера. Отметим, что каждая команда, требующая адресации, может адресоваться по умолчанию, то есть адреса указывать не обязательно.
Как правило, в строке может содержаться только одна команда. Ряд команд позволяет вводить текст, который размещается в определенном месте буфера. Когда редактор находится в режиме ввода, никакие команды не воспринимаются; вводимая информация только накапливается. Строка, состоящая из одного символа ".", обозначает конец ввода.
Редактор ed поддерживает ограниченную форму записи регулярных выражений; регулярное выражение используется для задания адресов строк и, в некоторых командах (например, s) для указания заменяемых фрагментов строк. Регулярное выражение (РВ) определяет множество цепочек символов. Говорят, что элемент множества цепочек удовлетворяет РВ. РВ для ed может быть построено следующим образом.
Следующие односимвольные РВ сопоставляются с цепочками из одного символа:
1.1 Обычный символ (не входящий в перечень из пункта 1.2, см. ниже) - это односимвольное РВ, которое успешно сопоставляется с указанным символом.
1.2 Если за символом \ следует любой специальный символ, то этот последний теряет свой специальный смысл. Данная комбинация определяет односимвольное РВ, успешно сопоставляющееся со специальным символом. Специальными символами являются: