一致したら、7行をgrepし、この7行のコンテキストを置き換えて同じファイルに保存しようとします。
たとえば、
<IfModule prefork.c>
StartServers 8
MinSpareServers 5
MaxSpareServers 20
ServerLimit 256
MaxClients 256
MaxRequestsPerChild 4000
</IfModule>
MaxRequestsPerChild
置き換えられた値を使いたいです5000
。
私は以前試しました:
grep "IfModule prefork.c" httpd.conf -A7 | /bin/sed -nE "/\bMaxRequestsPerChild\b/ s/[0-9]+/50/"
しかし幸運はありません。
ベストアンサー1
これはSEDソリューションです。
sed '/<IfModule prefork.c>/,/MaxRequestsPerChild/s/MaxRequestsPerChild.*/MaxRequestsPerChild 5000/' apacheconf
モジュール名を一致させた後、次の「MaxRequestsPerChild」行を5000の値に置き換えるように動作します。他のすべてのモジュールについては「MaxRequestsPerChild」を無視します。