2016-04-26 66 views
0

我有一个spring.xml文件,我想注释掉一个拦截器,我应该用什么shell脚本来注释掉这个配置,如下图所示?换句话说,我应该如何在特定行之前添加一行,例如第70行。谢谢!如何用户linux shell注释掉一个spring xml?

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 

谢谢!

+0

我使用 “SED -i '70I <! - ' spring.xml” 插入线,并把它注释掉这种方式。 – leo

回答

0

你可以尝试以下没有反向引用:

$ 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> 
--> 
0

这项工作适合你吗?

sed 's/\(<mvc:interceptor\)/<!--\n\1/;s|\(</mvc:interceptor>\)|\1\n-->|' yourfile.xml 
0

我建议你尝试一下Vim编辑器

六yourfile.xml