sed find在xml中替换特殊字符

时间:2017-09-21 08:09:08

标签: xml sed replace special-characters

我在XML文件中有这个标记:

<content type="html">bla bla text...&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~randomurl;img src="http://feeds.feedburner.com/~randomimg" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~randomsrc height="1" width="1" alt=""/&gt;</content>

我的目标是删除完整的网址/特殊字符部分。它应该是这样的:

<content type="html">bla bla text...</content>

我想这样做,因为它破坏了我的XML解析器。任何想法如何实现它?

我尝试过sed但还没有成功:(

1 个答案:

答案 0 :(得分:0)

您可以使用sed来处理

$ cat test.xml
<content type="html">bla bla text...&lt;div class="feedflare"&gt;&lt;a href="http://feeds.feedburner.com/~randomurl;img rc="http://feeds.feedburner.com/~randomimg" border="0"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~randomsrc height="1" width="1" alt=""/&gt;</content>

$ sed -e 's/&[^<]*//g' test.xml
<content type="html">bla bla text...</content>

这会将&的数字移到它遇到的第一个<