sed: -e 式 #1、文字 44: 終了していないアドレス正規表現

sed: -e 式 #1、文字 44: 終了していないアドレス正規表現

質問:

Debian インストールを構成するためのスクリプトを作成しています。 sedを使用しようとしています。行を削除する方法を知っていますが、必要な行があります。コメントアウトされます。

私が持っているのはこれです:

sed -i '/deb cdrom:[Debian GNU/Linux 9.4.0 _S/s/^/#/' /etc/apt/sources.list

ただし、次のエラーが発生します。

sed: -e expression #1, char 44: unterminated address regex

どうやらブラケットに問題があるようですね。

質問:

ここで問題は何であり、このコマンドをどのように修正できますか?そして/またはこれを行う他の方法はありますか?

ベストアンサー1

この試み、

  sed -i '/deb cdrom:\[Debian GNU\/Linux 9\.4\.0 _S/s/^/#/' /etc/apt/sources.list
  • [/およびは区切り文字で正規表現演算子であるため、検索パターンからエスケープする必要があります。./[.

おすすめ記事