ファイルに改行文字を含むパターンがあります。
client_encryption_options:
enabled: false
...enabled
に設定したいが、以下の項目でなければなりません。true
enabled
client_encryption_options
grepを使用すると、複数行を検索できません。この目標をどのように達成できますか?
ベストアンサー1
まあ、grep
これを修正することもできないので、このユーティリティは最初から実行可能ではありません。
代わりにGNUを使用してくださいsed
:
$ sed '/^client_encryption_options:/,+1s/enabled:.*/enabled: true/' file
次に、文字列で始まる行を見つけ、その行client_encryption_options:
と次の行に置換を適用します。置換は、enabled:
文字列と同じ行の後に続くすべての項目を置き換えますenabled: true
。
置換は両方の行に適用されますが、enabled:.*
最初の行でパターンが見つからないため、変更されていません。 2行目は(次のテキストに関係なくenabled:
)無条件に変更されます。