反向引用

使用轉義括號,你可以在模式中定義捕獲組,該模式可以使用\1 在替換字串中進行反向引用:

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

有多個組:

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

Version = GNU sed

使用擴充套件正規表示式時(請參閱“ 其他選項” ),預設情況下,括號將執行分組,而不必進行轉義:

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

可以使用 [[:alnum:]_]\{1,\} 表示式匹配由字母,數字和下劃線組成的單詞:

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

Version = GNU sed

序列\w 相當於 [[:alnum:]_]

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