Выражения подстановки
В выражениях подстановки следующие символы имеют особое значение:
&
означает, какое регулярное выражение совпало. (в программе emacs
используйте конструкцию \&)
\n
означает совпавшее регулярное выражение, заключенное в скобки, по номеру n
Для выражений подстановки языка Perl используется конструкция $n вместо \n и символ & не имеет особого значения.
Например:
$ echo zzz1abc2efg3hij4 | \ sed -e 's/\(1[a-z]*\)[0-9]*\(.*\)$/=&=/' zzz=1abc2efg3hij4= $ echo zzz1abc2efg3hij4 | \ sed -e 's/\(1[a-z]*\)[0-9]*\(.*\)$/\2===\1/' zzzefg3hij4===1abc $ echo zzz1abc2efg3hij4 | \ perl -pe 's/(1[a-z]*)[0-9]*(.*)$/$2===$1/' zzzefg3hij4===1abc $ echo zzz1abc2efg3hij4 | \ perl -pe 's/(1[a-z]*)[0-9]*(.*)$/=&=/' zzz=&=
Здесь обратите дополнительное внимание на стиль регулярных выражений, заключенных в скобки, и на то, как совпавшие строки используются в процессе замены текста у разных инструментов.
Эти регулярные выражения могут быть использованы для перемещения курсора и также для действий по замене текста в редакторах.
Пожалуйста, прочтите все связанные man-страницы для изучения этих команд.