Ответ 1
Вот простой пример:
$ 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
(глобальный) (или без него, первое совпадение) вы можете указать конкретное соответствие:
$ echo 'aaaaaa' | sed 's/a/A/4'
aaaAaa