С развитием технологии ed
постигла та же судьба. Почти наверняка вы найдете в своей системе другие редакторы с интересными свойствами, в частности с возможностью "визуального", или "экранного", редактирования, при котором на экране терминала отражаются все вносимые вами коррективы.
Почему же тогда мы тратим время на, казалось бы, устаревшую программу? Дело в том, что ed
выполняет некоторые операции весьма успешно, несмотря на свой возраст. Эта программа есть на всех установках UNIX, и вы всегда найдете ее при переходе с одной системы на другую. Она работает хорошо и с низкоскоростными телефонными линиями, и с любыми терминалами. Кроме того, ed
легко запускать из командного файла, в то время как большинство экранных редакторов управляются с терминала и не могут должным образом получить входной поток из файла.
Редактор ed
предоставляет регулярные выражения для поиска по образцу. Регулярные выражения, на которых основан ed
, присутствуют во всех частях системы: grep
и sed
применяют почти такие же, a egrep
, awk
, lex
расширяют их. Shell использует для сравнения имен файлов иной синтаксис, но те же самые идеи. Некоторые экранные редакторы имеют "строчный режим", который предусматривает обращение к регулярным выражениям ed.
И, наконец, ed
обладает высоким быстродействием. Вполне возможно вызвать ed
, заменить в файле одну строку, записать новую версию и вернуться из него, причем все это происходит быстрее, чем один только запуск большого и более сложного экранного редактора.
Основные сведения
Программа ed
редактирует один файл за один раз. Она работает с копией файла. Чтобы внести исправления в первоначальный файл, вы должны дать явную команду. Редактор предоставляет команды для манипуляций с последовательными строками или строками, соответствующими образцу, а также команды для внесения в строки изменений.
Каждая команда ed
представляет собой символ (обычно букву). Большинству команд может предшествовать один или два номера строки, которые указывают, на какую строку или строки должна воздействовать команда: в противном случае подразумевается номер, принятый по умолчанию. Номер строки можно специфицировать абсолютной позицией в файле (1, 2 ...), символами $
для последней строки и " .
" для текущей, процедурой поиска по образцу, использующей регулярные выражения, и их аддитивными комбинациями.
Рассмотрим, как с помощью ed
можно создавать файлы, используя стихи Де Моргана из первой главы.
$ ed poem
? poem
Предупреждение: файл poem не существует
а
Начать добавление строк
Great fleas have little fleas
upon their backs to bite 'em,
And little fleas have lesser fleas,
and so ad infinitum.
.
Печатаем '.' чтобы закончить ввод
w poem
Пишем строки в файл poem
121
ed сообщает, что записан 121 символ
q
Выход
Команда а
добавляет или присоединяет строки. Режим добавления заканчивается строкой, состоящей из одной точки. Из-за отсутствия индикации режима, в котором вы работаете, возможны две распространенные ошибки: ввод текста без команды а
и ввод команды до ввода ' .
'.
Редактор ed
никогда не будет писать ваш текст в файл автоматически; вы должны задать это с помощью команды w
. Однако, если вы пытаетесь закончить редактирование без записи ваших изменений, ed
выдает ' ?
' как предупреждение. Есть другая команда q
, позволяющая завершить работу независимо от внесения исправлений.
$ ed poem
121
Файл существует и имеет 121 символ
а
Добавить еще строки в его конец
And the great fleas themselfs, in turn,
have greater fleas to go on;
While these again have greater still,
and greater still, and so on.
.
Печатаем '.' для завершения
q
Пытаемся выйти
?
Предупреждение: не было записи
w
Нет имени файла; подразумевается poem
263
q
Теперь можно выходить
$ wc poem
Проверьте для уверенности
8 46 263 poem
$
Временная передача управления shell
с помощью ' !
'
Если вы запустили ed
, то можете временно выйти из него, чтобы запустить другую команду shell
. В этом случае нет необходимости прекращать работу достаточно ввести команду ed
' !
'.
$ ed poem
! wc poem
Запуск wc без выхода из ed
8 46 263 poem
!
Вернулись из команды
Читать дальше
Конец ознакомительного отрывка
Купить книгу