sedを使用して特定のパターン内でパターンを見つけて置き換える方法

sedを使用して特定のパターン内でパターンを見つけて置き換える方法

それは「sed」のようで、私は友達になることはできません...

特定の範囲(他のパターン内)内のパターンを見つけて置き換える方法は?

つまり、AllowOverride None次の範囲で:を見つけて次に置き換えます。AllowOverride All

...
<Directory "/var/www/html">
some text
more text
some comments
AllowOverride None
more text
</Directory>
...

注意してください(まだ実行されていない場合):これはより多くの「モジュール」を含むhttpd.confに関連しており、すべて次に終了します。</Directory>

このコマンドはyamlファイルで使用されているため、1行のコードを使用してそれを実装することをお勧めします(わかっていますが、1行のコードは非常に速く見苦しくなる可能性があります...)。

また: 私はsedを使用します。 (必須です。理由は聞かないでください。)

ベストアンサー1

GNU sedの使用:

sed -i -e '/<Directory "\/var\/www\/html">/,/<\/Directory>/{s/AllowOverride None/AllowOverride All/}' filename

おすすめ記事