主讲 尹会生 金山西山居运维总监
当配置项与值不在一行的情况时(想要替换listing配置项的false为true时),用sed的单行模式不太便于处理
<servlet>
<init-param>
<param-name>fake</param-name>
<param-value>false</param-value>
<\init-param>
<init-param>
<param-name>listing</param-name>
<param-value>false</param-value>
<\init-param>
<\servlet>
把当前行的下一行也加入到sed的模式空间中,组成一个多行模式
输出多行模式空间的内容,直到第一个换行符为止
删除模式空间的第一个字符 一直到第一个换行符
sed -i ‘/listing/{N;s/false/true/;P;D}’ config.txt