Sed Regexpコマンドが機能しません

Sed Regexpコマンドが機能しません

したがって、ファイルには次のような行があります。

#multiline.pattern: ^\[

私はそれを置き換えるためにsedを使ってみました。

multiline.pattern: '^\['

これを実行するために使用するコマンドは次のとおりです。

sudo sed -i 's/multiline.pattern: \^\\\[/multiline.pattern: '\'\^\\\\[\'/g' /etc/filename.txt

ただし、このコマンドを実行するたびに、次の結果が表示されます。

ここに画像の説明を入力してください。

誰かが私がここで何を間違っているのか教えてもらえますか?

ありがとうございます!

ベストアンサー1

あなたの例を考えると、次のように動作します。

$ cat ex
#multiline.pattern: ^\[

$ sed -e "s/^#multiline\.pattern:.*/multiline.pattern: '^\\\['/" ex
multiline.pattern: '^\['

#multiline.pattern:これにより、 で始まる行と行の最後まで、必要な数の文字が出てくる行が、所望のパターンに置き換えられます。

あなたが求めているパターンにはいくつかの特別な記号(、、) が含まれて\います[\\\\\[[

おすすめ記事