sed 报告“未知命令”

sed 报告“未知命令”

我写了这个:

sudo sed -i ‘s/3389/3390/g’ /etc/xrdp/xrdp.ini

这产生了这个错误:

sed: -e expression #1, char 1: unknown command: `'

答案1

比较您的

 sudo sed -i ‘s/3389/3390/g’ /etc/xrdp/xrdp.ini

与正确的

 sudo sed -i 's/3389/3390/g' /etc/xrdp/xrdp.ini

检查不同类型的报价。

从 Writer 或 Word 等文档编辑器复制粘贴时要小心,它们通常会自动更改引号(和其他内容)以匹配本地内容。

答案2

我遇到了同样的错误,但原因不同。我没有使用 ` 字符,也没有从某处复制粘贴代码。我正在编写一个带有条件的 sed 脚本,并使用新行作为命令。如果其他人遇到同样的问题并且没有从接受的答案中得到帮助,请在此处发布此信息。

复制错误的方法如下:

echo class:myclass > myfile
cat script
/class:/
s/myclass/MYCLASS/g #ctrl+d to exit
sed -f script myfile

输出:

sed: file script line 2: unknown command: `
'

解决这个问题的方法是将命令放在条件之后(在同一行),或者使用花括号,这样脚本如下所示:

/class:/ s/myclass/MYCLASS/

或这个:

/class:/ {
s/myclass/MYCLASS/
}

相关内容