【发布时间】:2018-03-07 20:32:51
【问题描述】:
我有以下xml结构:
<filter>
<filter-name>FooServletFilter</filter-name>
<filter-class>
com.foo.web.online.util.csrf.FooServletFilter
</filter-class>
</filter>
<filter-mapping>
<filter-name>FooServletFilter</filter-name>
<url-pattern>/bar/foo/*</url-pattern>
</filter-mapping>
嗯,我们遇到了紧急情况,需要移除这些正在生产中的过滤器。
我在想我可以 find 包含这些过滤器的 web.xml 文件并使用 sed 删除它们
我对@987654325@ 和exec 很好,但对sed 失败了。
#find / -type f -name "web.xml -exec sed -i -e 's/<filter>.*FooServletFilter<\/filter>//g
失败。然后我想在我的本地文件上尝试sed
我尝试了很多类似以下的方法:
sed -i -e 's/<filter>.*FooServletFilter<\/filter>//g' web.xml
但没有运气。
ps:我有多个 xml 节点。我需要删除具有
FooServletFilter
你能帮我解决这个问题吗?
【问题讨论】:
-
edit 你的问题显示给定输入的预期输出。您的输入使您看起来只需要删除确切的字符串
<filter-name>FooServletFilter</filter-name>- 如果不是这种情况,请提供更真实的示例输入/输出,否则您最终会找到解决问题的方法没有。展示一个难以处理的案例,而不是微不足道的晴天案例。正确的解决方案不会涉及 sed,因此您至少应该用 awk 标记它。