我有一个 spring.xml,我想注释掉一个拦截器,我应该使用什么 shell 脚本来像下面那样注释掉这个配置?换句话说,我应该如何在特定行之前添加一行,例如第 70 行。谢谢!
70 <mvc:interceptor>
71 <mvc:mapping path="/openapi/**"/>
72 <bean parent="paramsEncryptInterceptor"/>
73 </mvc:interceptor>
70 <!--
71 <mvc:interceptor>
72 <mvc:mapping path="/openapi/**"/>
73 <bean parent="paramsEncryptInterceptor"/>
74 </mvc:interceptor>
75 -->
解决方案 我通过将注释字符串插入特定行来完成,如下所示:
sed -i '70i<!--' spring.xml
sed -i '75i-->' spring.xml
谢谢!
最佳答案
您可以在没有反向引用的情况下尝试以下操作:
$ sed -e '/<mvc:interceptor>/s/^/<!--\n/' \
-e '/<\/mvc:interceptor>/s/$/\n-->/' filename
示例输入
$ cat dat/stuff.txt
<mvc:interceptor>
<mvc:mapping path="/openapi/**"/>
<bean parent="paramsEncryptInterceptor"/>
</mvc:interceptor>
示例使用/输出
$ sed -e '/<mvc:interceptor>/s/^/<!--\n/' \
-e '/<\/mvc:interceptor>/s/$/\n-->/' dat/stuff.txt
<!--
<mvc:interceptor>
<mvc:mapping path="/openapi/**"/>
<bean parent="paramsEncryptInterceptor"/>
</mvc:interceptor>
-->
关于xml - 如何使用 linux shell 注释掉 spring xml?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36856959/