我试图从我的展平xml文件中删除一个节点,我的xml文件包含以下内容:
...
<cellule ref="1111"/>
</blah>
<workdocument id="bar" classement="1"/>
<tablau id="35">
<cellule ref="1250"/>
<area id="foo">
<subarea>Ipsum Lorem Dolor</subarea>
<area>
...
我需要删除<workdocument id="bar" classement="1"/>
,因此要从元素<workdocument
移除,直到它关闭&#34; />
&#34;
我用sed尝试了以下内容:
echo '<cellule ref="1111"/></blah><workdocument id="bar" classement="1"/><tablau id="35"><cellule ref="1250"/><area id="foo"><subarea>Ipsum Lorem Dolor</subarea><area>' |sed 's/<workdocument.*\/>//'
<cellule ref="1111"/></blah><area id="foo"><subarea>Ipsum Lorem Dolor</subarea><area>
但<cellule ref="1250"/><area id="foo">
也被移除:/
请注意,属性classement的值未知:/
谢谢
答案 0 :(得分:2)
试试这个:sed 's/<workdocument[^\/]*\/>//'
在[^/]*
之后使用.*
代替workdocument
,以使其匹配不超过第一个/>
。 [^/]
匹配/
以外的所有字符。