Как и символы *
, >
, :
, имеющие специальный смысл в shell
, некоторые символы имеют специальный смысл для ed
, если они появляются в образце для поиска или в левой части команды s
. Эти символы называют метасимволами, а использующие их образцы регулярными выражениями. В табл. П.1.1 перечислены все символы и их значения. Примеры, приведенные ниже, следует читать в соответствии с таблицей. Специальный смысл любого символа может быть отменен предшествующей ему обратной дробной чертой '\
'.
с | Любой специальный символ задает совпадение с таким же символом |
\c | Отменяет специальный смысл символа с |
А | Соответствует началу строки, когда ^ начинает образец |
$ | Соответствует концу строки, когда $ заканчивает образец |
. | Совпадает с любым одиночным символом |
[...] | Соответствует одному любому символу в ... ; допустимы диапазоны типа a-z |
[^...] | Соответствует любому одиночному символу, не входящему в ... ; допустимы диапазоны |
r* | Соответствует нулевому или более числу вхождений r , где r символ, или [...] |
& | Используется только в правой части s; вставляет фрагмент, совпавший с образом |
\(...\) | Помечает регулярное выражение; найденная строка доступна как \1 , и т.д. в левой и правой частях выражения |
Таблица П.1.1: Регулярные выражения редактора
Символу перевода строки не соответствует ни одно регулярное выражение.
Образец | Соответствие |
---|---|
/^$/ | пустая строка, т.е. только конец строки |
/./ | непустая, т.е. по крайней мере один символ |
/^/ | все строки |
/thing/ | thing где либо в строке |
/^thing/ | thing в начале строки |
/thing$/ | thing в конце строки |
/^thing$/ | строка, состоящая лишь из thing |
/thing.$/ | thing плюс любой символ в конце строки |
/thing\.$/ | thing. в конце строки |
/\/thing\// | /thing/ где либо в строке |
/[tT]hing/ | thing или Thing где либо в строке |
/thing[0-9]/ | thing , за которой одна цифра |
/thing[^0-9]/ | thing , за которой не цифра |
/thing[0-9][^0-9]/ | thing , за которой цифра и не цифра |
/thing1.*thing2/ | thing1 , затем любая строка, затем thing2 |
/^thing1.*thing2$/ | thing1 в начале и thing2 в конце |
Регулярные выражения, использующие *
, выбирают самое левое совпадение с образцом до тех пор, пока это возможно. Отметим, что x*
может соответствовать нулю, а xx*
одному или более символу.
Глобальные команды g
и v
управляют вызовом одной или большего числа других команд, выполняющих преобразования в множестве строк, выбранных регулярным выражением. Команда g
наиболее часто используется для печати, подстановки или удаления множества строк:
| Для всех строк между re выполнить cmd |
| Для всех строк между re выполнить cmd |
Командам g
и v
могут предшествовать номера строк, ограничивающие диапазон; по умолчанию принимается диапазон 1,$
:
Вильям Л Саймон , Вильям Саймон , Наталья Владимировна Макеева , Нора Робертс , Юрий Викторович Щербатых
Зарубежная компьютерная, околокомпьютерная литература / ОС и Сети, интернет / Короткие любовные романы / Психология / Прочая справочная литература / Образование и наука / Книги по IT / Словари и Энциклопедии