POSIX / IEEE开放组基本规范说:
[2addr] s / BRE /替换/标志
将替换字符串替换为模式空间中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