g/.../p | Печатать все строки, соответствующие регулярному выражению ... |
g/.../d | Убрать все строки соответствующие ... |
g/.../s//repl/p | Заменить первое вхождение ... в каждой строке на 'repl ', печатать измененные строки |
g/.../s//repl/gp | Заменить каждое ... на 'repl ' , печатать измененные строки |
g/.../s/pat/repl/ | В строках, соответствующих ... , заменить первую 'pat ' на 'repl ' |
g/.../s/pat/repl/p | В строках, соответствующих ... , заменить первую 'pat ' на 'repl ' и печатать |
g/.../s/pat/repl/gp | В строках, соответствующих ... , заменить все 'pat ' на 'repl ' и печатать |
v/.../s/pat/repl/gp | В строках, не соответствующих ... , заменить все 'pat ' на 'repl ' и печатать |
v/^$/p | Печатать все непустые строки |
g/.../cmd1\cmd2\cmd3 | Выполнять составные команды с единственной g , присоединить \ к каждой cmd кроме последней |
Команды, управляемые командами g
или v
, также могут использовать номера строк, текущая строка настраивается по очереди на каждую выбранную строку:
g/thing/.,.+1р | Печатать каждую строку с thing и следующую |
g/^\.EQ/.1, /^\.EN/s/alpha/beta/gp | Заменять alpha на beta только между .EQ и .EN и печатать измененные строки |
Команда m
перемещает группу смежных строк, а команда t
копирует группу строк:
| Переместить строки |
| Скопировать строки |
Если исходные строки не определены, используется текущая строка. Строка назначения d
не может быть в диапазоне m,n-1
. Ниже приведено несколько общих идиом, включающих m
и t
.
m+ | Поместить текущую строку после следующей (переставить) |
m-2 | Поместить текущую строку перед предыдущей |
m-- | То же самое: это то же, что -2 |
m- | Ничего не делать |
m$ | Поместить текущую строку в конец (m0 — поместить в начало) |
t. | Дублировать текущую строку (t$ дублирует в конце) |
-,.t. | Дублировать предыдущую и текущую строки |
1,$t$ | Дублировать все множество строк |
g/^/m0 | Инвертировать порядок строк |
Команда =
печатает номер строки $
(слабое умолчание), .=
печатает номер текущей строки и т.д. Положение текущей строки не изменяется.
Команда kc
с
; впоследствии на эту строку можно ссылаться с помощью 'c
. Команда k
не меняет положение текущей строки. Метки удобны при перемещении больших фрагментов текста, поскольку они остаются привязанными к строкам, как показано в приведенной ниже последовательности:
/.../ka | Найти строку ... и пометить буквой a |
/.../kb | Найти строку ... и пометить буквой b |
'a,'bp | Печатать целый диапазон, чтобы быть уверенным |
/.../ | Найти нужную строку |
'а,'bm | Поместить выбранные строки после нее |
Строки могут быть объединены с помощью команды j
(пробелы не добавляются):
| объединяет строки с m по n в одну |
jp | Объединить текущую строку со следующей и печатать |
-,.jp | Объединить предыдущую строку с текущей и печатать |
По умолчанию принимается диапазон .,.+1
;
Строки можно расщепить командой подстановки, отделив новую строку:
s/part1part2/part1\part2/ | Расщепить строку на две части |
s/ /\ /g | Расщепить по каждому пробелу. Оставить одно слово на строку |
Текущей становится последняя созданная строка.
Вильям Л Саймон , Вильям Саймон , Наталья Владимировна Макеева , Нора Робертс , Юрий Викторович Щербатых
Зарубежная компьютерная, околокомпьютерная литература / ОС и Сети, интернет / Короткие любовные романы / Психология / Прочая справочная литература / Образование и наука / Книги по IT / Словари и Энциклопедии