Формат регулярных выражений в vim’e/sed’e немного отличается от привычный PCRE. И вот чем:
- нужно экранировать скобки
- переменные подстановки $1, $2 ,… заменены на \1, \2,…
Пример.
Выражение
:%s/\(\d\{1,3\}\.\d\{1,3\}\.\d\{1,3\}\.\d\{1,3\}\)/\1 port = 80/g
заменяет строку
XX.XX.XX.XX
на
XX.XX.XX.XX to any port = 80
Хотя в PRCE это выглядело б так:
(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1.3})/$1 port = 80/g
А вот пример для sed’a:
sed 's/\t/ /g' dev | egrep 'IN A|IN CNAME' | sed -e 's/\(^[^ ]*\)\(.*\)/\1\.dev \2/'