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>

では、コード行を削除できるようにする必要があることを意味します。これは削除する必要があります>。次に、外部タグも削除して、次の結果を取得します。

<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' command.

何か不足していますか?

ありがとう!

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 に答える