Команда kc
метит нужную строку буквой с
; впоследствии на эту строку можно ссылаться с помощью 'c
. Команда k
не меняет положение текущей строки. Метки удобны при перемещении больших фрагментов текста, поскольку они остаются привязанными к строкам, как показано в приведенной ниже последовательности:
/.../ka |
Найти строку ... и пометить буквой a |
/.../kb |
Найти строку ... и пометить буквой b |
'a,'bp |
Печатать целый диапазон, чтобы быть уверенным |
/.../ |
Найти нужную строку |
'а,'bm |
Поместить выбранные строки после нее |
Объединение, расщепление и реорганизация строк
Строки могут быть объединены с помощью команды j
(пробелы не добавляются):
m , n j |
объединяет строки с m по n в одну |
jp |
Объединить текущую строку со следующей и печатать |
-,.jp |
Объединить предыдущую строку с текущей и печатать |
По умолчанию принимается диапазон .,.+1
;
Строки можно расщепить командой подстановки, отделив новую строку:
s/part1part2/part1\part2/ |
Расщепить строку на две части |
s/ /\ /g |
Расщепить по каждому пробелу. Оставить одно слово на строку |
Текущей становится последняя созданная строка.
Чтобы манипулировать не только целыми фрагментами, выбираемыми регулярными выражениями, но и их соответствующими частями, используйте помеченные регулярные выражения : если конструкция \(...\)
появляется в регулярном выражении, то часть соответствующего ей фрагмента доступна как \1
. Возможно до девяти помеченных выражений, на которые ссылаются с помощью \1
, \2
и т.д.
s/\(...\)\(.*\)/\2\1/ |
Поместить 3 первых символа в конец |
/\(..*\)\1/ |
Найти строки, содержащие повторяющиеся смежные цепочки символов |
Команды, работающие с файлами
Командам r
и w
(читать и писать) могут предшествовать номера строк:
n r file |
Читать file ; добавить его после строки n ; текущей становится последняя прочитанная строка |
m , n w file |
Писать строки m-n в file ; положение текущей строки не изменяется |
m , n w file |
Добавить строки m-n к file ; положение текущей строки не изменяется |
По умолчанию диапазон для w
и W
(команда W
приведена ниже в табл. П.1.2) — это целый файл. Значение n по умолчанию для r
равно $,
что представляется не очень удачным. Будьте внимательны.
Редактор ed
запоминает первое использованное имя файла из командной строки или из команд r
, w
. Команда f
(файл) печатает или заменяет имя запомненного файла:
f |
Печатать имя запомненного файла |
f file |
Установить запомненное имя на ' file ' |
Команда e
(редактировать) вновь вызывает ed с запомненным или новым файлом:
e |
Начать редактировать запомненный файл |
e file |
Начать редактировать ' file ' |
Команда е
защищена тем же способом, что и q
: если вы не записали измененную версию, первая команда е
выдает сообщение об ошибке; е
вновь инициализирует редактор независимо от внесения изменений. В некоторых системах ed
связан с е
, так что одна и та же команда ( е filename
) может использоваться внутри и вне редактора.
Шифрование
Файлы могут быть зашифрованы по записи и дешифрованы при чтении с помощью команды x
; пароль будет запрошен. Шифрование происходит тем же способом, что и в crypt(1)
. В некоторых системах команда x
заменена на X
(прописную букву) во избежание случайностей.
Сводка команд
В табл. П.1.2 перечислены команды редактора, а в табл. П.1.3 допустимые номера строк. Каждой команде предшествует нуль, один или два номера строк, указывающие число используемых строк, если их нет, принимается соглашение по умолчанию. За большинством команд может следовать буква p для вывода последней обработанной строки или 1 для формата списка. Текущей обычно становится последняя обработанная строка; настройка не меняется командами f
, k
, w
, x
, =
, !
.
.а |
Выполнять ввод до тех пор, пока не напечатана строка, содержащая только ' . ' |
.,.с |
Заменить строки, новый текст заканчивается так же, как для команды а |
.,.d |
Исключить строки |
е file |
Вновь начать редактировать file . Редактирование начинается даже в том случае, если исправления не записаны |
f file |
Запомнить имя файла как file |
1,$g/re/cmds |
Выполнить cmds для каждой строки, соответствующей регулярному выражению re; отдельные команды в cmds разделены \newline ( \ +"перевод строки") |
.i |
Вставить текст перед строкой; он заканчивается так же, как для команды a |
.,.+1j |
.Соединить строки в одну |
.kc |
Пометить строку буквой с |
...l |
Перечислить строки, делая невидимые символы видимыми |
.,.m line |
Переместить строки после строки line |
.,.p |
Печатать строки |
q |
Выйти. Q выходит, даже если исправления не записаны |
$r file |
Читать file |
.,.s/re/new/ |
Заменить new на то, что соответствует re |
.,.t line |
Скопировать строки после line |
.u |
Аннулировать последнюю подстановку в строке (только одну) |
1,$v/re/cmds |
Выполнить команды ed cmds для каждой строки, не соответствующей re |
1,$w file |
Записать строки в файл; W добавляет (строки к файлу) вместо того чтобы записывать (как новый файл) |
X |
Войти в режим шифрования (или ed -х имя_файла) |
$= |
Печатать номер строки |
! cmdline |
Выполнить команду UNIX cmdline |
(.+1) newline |
Печатать строку |
Таблица П.1.2: Сводка команд ed
Читать дальше
Конец ознакомительного отрывка
Купить книгу