使用不同的分隔符

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