q
Выход без w годится: не было исправлений
$
Печать
Строки файла нумеруются как 1, 2 … Вы можете печатать n
-ю строку, дав команду np
или просто номер n
, и строки с m
по n
, используя m,np
. "Номером строки" $
обозначается последняя строка, так что строки можно не считать.
1 |
Печатать первую строку; 1р то же самое |
$ |
Печатать последнюю строку; $p то же самое |
1,$p |
Печатать строки с первой по последнюю |
Печатать файл по одной строке проще всего; нажимая клавишу RETURN
, вы можете вернуться на одну строку назад с помощью ' -
'. Можно комбинировать номера строк с ' +
' и ' -
'.
$-2,$p |
Печатать последние три строки |
1,2+3p |
Печатать строки с первой по пятую |
Однако нельзя печатать после конца файла или в обратном порядке; команды типа $,$+1p
и $,1p
считаются незаконными.
Команда list 1
выводит текст в формате с видимыми символами. Это удобно при поиске в файлах управляющих символов, при различении пробелов, табуляции и т.п. (см. vis
в гл. 7).
Образцы
Как только размер начинает превышать две строки, становится неудобным печатать его весь целиком, чтобы отыскать нужную строку. Редактор ed
предлагает способ поиска строк, совпадающих с некоторым образцом, шаблоном: /pattern/
обнаруживает очередное вхождение pattern
.
$ ed poem 263
/flea/
Ищет очередную строку, содержащую flea
Great fleas have little fleas
/flea/
Ищет еще одну
And little fleas have lesser fleas,
//
Ищет следующую по тому же образцу
And the great fleas themselves, in turn,
??
Поиск в обратном направлении по тому же образцу
And little fleas have lesser fleas,
Редактор запоминает образец, применявшийся вами в последний раз, так что можно повторить поиск просто с помощью //
. Для поиска в обратном направлении воспользуйтесь ?pattern?
и ??
.
Поиск с помощью /.../
и ?...?
циклический, т.е. продолжается в обратном направлении после достижения одного из концов текста:
$p
Печатать последнюю строку ('p' необязательна)
and greater still, and so on.
/flea/
Следующее flea вблизи начала
Great fleas have little fleas
??
От начала идет в обратном направлении
have greater fleas to go on;
Результатом поиска по образцу типа /flea/
является номер строки, например 1 или $
, который может использоваться в том же контексте, что и такие номера:
1,/flea/p |
Печатать от единицы до следующего flea |
?flea?+1,$p |
Печатать от предыдущего flea + 1 до конца |
Текущая редактируемая строка. Редактор ed
отслеживает последнюю строку, с которой имели дело: печатали или вводили текст, читали из файла. Это текущая строка с именем ' .
'. Каждая команда определенным образом влияет на текущую строку, обычно настраивая ее на ту, с которой она последний раз работала. Вы можете использовать текущую строку так же, как $
или номер строки типа 1:
$ ed poem
263
.
Печатает текущую строку; после чтения файла
это то же, что $
and greater still, and so on.
.-1,.p
Печатает предыдущую строку и еще одну
While these again have greater still,
and greater still, and so on.
Выражения для номера строки могут быть сокращены:
Сокращение |
Эквивалент |
Сокращение |
Эквивалент |
-1 |
.-1 |
+ |
.+1 |
-- или -2 |
.-2 |
++ или +2 |
.+2 |
-n |
.-n |
+n |
.+n |
$- |
$-1 |
.3 |
.+3 |
Добавление, замена, исключение, вставка
Команда а
(добавить) добавляет строки после определенной строки, команда d
(удалить) вычеркивает строки, команда i
(вставить) вставляет строки перед определенной строкой, команда с
(заменить) заменяет строки, действуя как комбинация команд "удалить" и "вставить".
na |
Добавить текст после строки n |
ni |
Вставить текст перед строкой n |
m,nd |
Удалить строки с m по n |
m,nc |
Заменить строки с m по n |
Если номера строк не указаны, используется текущая строка. Новый текст для команд а
, с
и i
оканчивается строкой ' .
'; точка, введенная в последней строке, оставляется. Текущая строка настраивается на следующую строку после последней удаленной, за исключением случая, когда удалена последняя строка, т.е. $
.
Читать дальше
Конец ознакомительного отрывка
Купить книгу