2

我正在尝试使用 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>

那么这意味着我需要能够删除代码行 This must be deleted> 然后它也是外标记,以便我得到以下结果:

<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

这给了我以下错误:未终止的's'命令。

我错过了什么吗?

谢谢!

4

2 回答 2

0

您可能忘记了“必须删除”中的空格。您是否尝试引用 ssed 参数?

ssed "s:\<tagnumberone\>\<tagInside\>This must be deleted\<\/tagInside\>\<\/tagnumberone\>::" <file.xml >out.xmle
于 2012-12-07T07:24:40.183 回答
0

我找到了解决方案。实际上,我不知道它为什么起作用,但它仍然起作用。如果现在有人可以向我解释以下代码,那就太棒了:

ssed /<tagnumberone>/!b;N;N;/<tagnumberone>\s*\n\s*<tagInside>This must be deleted<\/tagInside>\s*\n\s*<\/tagnumberone>/d <oldFile >newFile

谢谢!

于 2012-12-07T08:36:07.380 回答