Литмир - Электронная Библиотека
Содержание  
A
A

$ 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
оканчивается строкой '
.
'; точка, введенная в последней строке, оставляется. Текущая строка настраивается на следующую строку после последней удаленной, за исключением случая, когда удалена последняя строка, т.е.
$
.

Добавить текст в начало (то же, что
1i
)
dp
Удалить текущую строку, печатать следующую (или последнюю, если
$
)
.,$dp
Удалить отсюда до конца, печатать новую последнюю
1,$d
Удалить все
?pat?,.-1d
Удалить от предыдущей, совпадающей с '
pat
' до той, что перед текущей
$dp
Удалить последнюю строку, печатать новую последнюю
$c
Заменить последнюю строку ($а добавляет после последней строки)
1,$c
Заменить все строки
138
{"b":"248117","o":1}