$ 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
оканчивается строкой '
.
'; точка, введенная в последней строке, оставляется. Текущая строка настраивается на следующую строку после последней удаленной, за исключением случая, когда удалена последняя строка, т.е.
$
.
0а
| Добавить текст в начало (то же, что 1i ) |
dp
| Удалить текущую строку, печатать следующую (или последнюю, если $ ) |
.,$dp
| Удалить отсюда до конца, печатать новую последнюю |
1,$d
| Удалить все |
?pat?,.-1d
| Удалить от предыдущей, совпадающей с ' pat ' до той, что перед текущей |
$dp
| Удалить последнюю строку, печатать новую последнюю |
$c
| Заменить последнюю строку ($а добавляет после последней строки) |
1,$c
| Заменить все строки |