我写了这个:
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/
}