xml - 如何使用 linux shell 注释掉 spring xml?

标签 xml linux shell xml-parsing

我有一个 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/

相关文章:

c++ - 如何使链接器不排除未调用的函数?

linux - 在命令中使用引号和双引号设置别名

shell - "Exec format error"docker 运行命令

shell - -z 选项在 shell 脚本中的 if 条件中

php - 如何使用 PHP 中的 SoapClient 类向 XML 元素添加附加属性

linux - 使用 Automake 更正 GCC 命令行顺序

linux - 用于安装特定版本的 Docker Community Edition yum CentOS 的 <version> 字符串的格式

c++ - XML 树打印机?

php - 使用 PHP 搜索 XML 文件

c# - 在 C# 中实现我自己的 XPathNavigator