Вот простой пример:
$ echo 'abcabcabc' | sed 's/\(ab\)c/\1/'
ababcabc
$ echo 'abcabcabc' | sed 's/\(ab\)c/\1/g'
ababab
$ echo 'abcabcabc' | sed 's/\(ab\)\(c\)/\1d\2/g'
abdcabdcabdc
В первой команде затрагивается только первое совпадение.Во второй команде, каждый матч затрагивается.В обоих случаях \1
относится к символам, захваченным экранированными скобками.
В третьей команде указываются две группы захвата.На них ссылаются с помощью \1
и \2
.Можно использовать до девяти групп захвата.
Помимо оператора g
(global) (или без него, первое совпадение), вы можете указать конкретное совпадение:
$ echo 'aaaaaa' | sed 's/a/A/4'
aaaAaa