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/
}

相關內容