私はこう書きました:
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/
}