反向引用
使用轉義括號,你可以在模式中定義捕獲組,該模式可以使用\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