1

我想使用 sed 删除 xml 文件中所有出现的“foo=1&”和“bar=2&”之间的所有字符。

<url>http://example.com?addr=123&foo=1&s=alkjasldkffjskdk$bar=2&f=jkdng</url>
<url>http://example.com?addr=124&foo=1&k=d93ndkdisnskiisndjdjdj$bar=2&p=dnsks</url>

这是我的 sed 命令:

sed -e '/foo=1&/,/bar=2&/d' sample.xml

当我运行它时,文件没有改变。

以上基于此示例:查找“string1”并在其与“string2”之间删除

4

2 回答 2

7

使用替换命令而不是删除命令:

sed -e 's/\(foo=1&\).*\(bar=2&\)/\1\2/'
于 2013-10-04T17:17:59.493 回答
2

你应该使用

 sed -i -e 's/\(foo=1&\).*\(bar=2&\)/\1\2/' your_html.xml
于 2013-10-04T17:18:31.300 回答