我想使用sed删除" foo = 1&"之间的所有字符。和" bar = 2&"对于xml文件中的所有事件。
<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
当我运行它时,文件不变。
以上内容基于此示例:Find "string1" and delete between that and "string2"
答案 0 :(得分:6)
使用 substitution 命令代替 delete 命令:
sed -e 's/\(foo=1&\).*\(bar=2&\)/\1\2/'
答案 1 :(得分:2)
你应该使用
sed -i -e 's/\(foo=1&\).*\(bar=2&\)/\1\2/' your_html.xml