bash sed:-e expression#1,char 21:`s'的数字选项命令可能不为零

时间:2017-04-04 00:21:29

标签: bash sed

我想在conf文件中重写一行。应放在第88行的文字是:auth 0.0.0.0/0 - -  我的命令是:

sed -i '88s/.*/auth 0.0.0.0/0 - -/' /etc/opt/ss5/ss5.conf

但我收到错误

sed: -e expression #1, char 21: number option to `s' command may not be zero

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:5)

这是因为您尝试注入的文本包含/,它被sed用作分隔符 您需要转义此斜杠,或使用其他sed分隔符。 Sed可以接受任何字符作为分隔符,即#。

sed -i '88s/.*/auth 0.0.0.0\/0 - -/' /etc/opt/ss5/ss5.conf
#OR
sed -i '88s#.*#auth 0.0.0.0/0 - -#' /etc/opt/ss5/ss5.conf