看来“sed”和我永远不会成为朋友......
如何查找并替换一定范围内(另一个模式内)的模式?
换言之:查找:AllowOverride None
在以下范围内并替换为AllowOverride All
...
<Directory "/var/www/html">
some text
more text
some comments
AllowOverride None
more text
</Directory>
...
请注意(如果尚未完成):这与 httpd.conf 有关,其中包含更多“模块”,全部以</Directory>
由于此命令是在 yaml 文件中使用的,因此使用单行代码来实现这一点会很不错(我知道,单行代码很快就会变得丑陋......)。
另外:我依赖使用 sed (要求,不要问我为什么 - 请:))
答案1
使用 GNU sed:
sed -i -e '/<Directory "\/var\/www\/html">/,/<\/Directory>/{s/AllowOverride None/AllowOverride All/}' filename