我寫了這個:
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/
}