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

use*_*ser 0 bash sed

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

sed -i '88s/.*/auth 0.0.0.0/0 - -/' /etc/opt/ss5/ss5.conf
Run Code Online (Sandbox Code Playgroud)

但是我收到了一个错误

sed: -e expression #1, char 21: number option to `s' command may not be zero
Run Code Online (Sandbox Code Playgroud)

我该如何解决这个问题?

Geo*_*iou 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
Run Code Online (Sandbox Code Playgroud)