我正在尝试使用SSED从XML文件中删除多行。我能够删除XML文件中的某些单行,但我需要能够删除多行。
例如:
<tagnumberone>
<tagInside>This must not be deleted</tagInside>
</tagnumberone>
<tagnumberone>
<tagInside>This must be deleted</tagInside>
</tagnumberone>
<tagnumberone>
<tagInside>This must not be deleted</tagInside>
</tagnumberone>
那么这意味着我需要能够删除代码行这必须删除&gt;然后它也是如此,以便得到以下结果:
<tagnumberone>
<tagInside>This must not be deleted</tagInside>
</tagnumberone>
<tagnumberone>
<tagInside>This must not be deleted</tagInside>
</tagnumberone>
我正在尝试使用以下Super Sed突击队:
ssed s:\<tagnumberone\>\<tagInside\>This must be deleted\<\/tagInside\>\<\/tagnumberone\>:: <file.xml >out.xmle
这给了我以下错误:unterminated's'命令。
我错过了什么吗?
谢谢!
答案 0 :(得分:0)
可能您忘记了“必须删除”中的空格。您是否尝试引用行参数?
ssed "s:\<tagnumberone\>\<tagInside\>This must be deleted\<\/tagInside\>\<\/tagnumberone\>::" <file.xml >out.xmle
答案 1 :(得分:0)
我找到了解决方案。实际上,我不知道它为什么会起作用,但它确实有效。如果有人现在可以向我解释下面的代码,那就太棒了:
ssed /<tagnumberone>/!b;N;N;/<tagnumberone>\s*\n\s*<tagInside>This must be deleted<\/tagInside>\s*\n\s*<\/tagnumberone>/d <oldFile >newFile
谢谢!