sed Backreference


Exemple

En utilisant des parenthèses échappées, vous pouvez définir un groupe de capture dans un modèle pouvant être référencé dans la chaîne de substitution avec \1 :

$ echo Hello world! | sed 's/\(Hello\) world!/\1 sed/'
Hello sed

Avec plusieurs groupes:

$ echo one two three | sed 's/\(one\) \(two\) \(three\)/\3 \2 \1/'
three two one
BSD sed GNU sed

Lorsque vous utilisez des expressions régulières étendues (voir Options supplémentaires ), les parenthèses effectuent un regroupement par défaut et ne doivent pas être échappées:

$ echo one two three | sed -E 's/(one) (two) (three)/\3 \2 \1/'
three two one

Les mots composés de lettres, de chiffres et de traits de soulignement peuvent être comparés à l'aide de l'expression [[:alnum:]_]\{1,\} :

$ echo Hello 123 reg_exp | sed 's/\([[:alnum:]_]\{1,\}\) \([[:alnum:]_]\{1,\}\) \([[:alnum:]_]\{1,\}\)/\3 \2 \1/'
reg_exp 123 Hello
GNU sed

La séquence \w est équivalente à [[:alnum:]_]

$ echo Hello 123 reg_exp | sed 's/\(\w\w*\) \(\w\w*\) \(\w\w*\)/\3 \2 \1/'
reg_exp 123 Hello