私は通常、大きなXMLファイルを処理し、grep
特定の統計を確認するために単語数をカウントします。
widget
たとえば、次の方法で1つのxmlファイルに少なくとも5つのインスタンスがあることを確認したいと思います。
cat test.xml | grep -ic widget
さらに、次のように表示される行をログに記録できるようにしたいだけですwidget
。
cat test.xml | grep -i widget > ~/log.txt
ただし、私が本当に必要とする重要な情報は、にwidget
表示されるXMLコードのブロックです。サンプルファイルは次のようになります。
<test> blah blah
blah blah blah
widget
blah blah blah
</test>
<formula>
blah
<details>
widget
</details>
</formula>
上記のサンプルテキストから次の出力を取得しようとしています。
<test>widget</test>
<formula>widget</formula>
事実上、任意の文字列を囲むXMLテキスト/コードのブロックに適用される最高レベルのマークアップタグを含む1行を取得しようとしていますwidget
。
コマンドラインのワンライナーを介してこれを実装するための提案はありますか?
ありがとうございました。