使用不同的分隔符
POSIX / IEEE Open Group Base 規範說 :
[2addr] s / BRE / replacement / flags
用替換字串替換模式空間中 BRE 的例項。可以使用除反斜槓或換行符之外的任何字元而不是斜槓來分隔 BRE 和替換。在 BRE 和替換中,如果前面有反斜槓,則 BRE 分隔符本身可以用作文字字元。
有些情況下,sed
替換的分隔符/
在 BRE 或替換中,觸發錯誤,如:
$ echo "2/3/4" | sed "s/2/3/X/"
sed: -e expression #1, char 7: unknown option to `s'
為此,我們可以使用不同的分隔符,如 #
或 _
甚至是空格:
$ echo "2/3/4" | sed "s#2/3#X#"
X/4
$ echo "2/3/4" | sed "s_2/3_X_"
X/4
$ echo "2/3/4" | sed "s 2/3 X "
X/4