ここで必要なのは awk ではなく、この種のタスク専用に作成された XSLT です。xml ドキュメントを別の xml に変換できます。
あなたのような入力の場合:
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="example.xsl"?>
<outer_tag>
<top_tag>
<tag>value_1</tag>
<other_tags></other_tags>
</top_tag>
<top_tag>
<tag>value_2</tag>
<other_tags></other_tags>
</top_tag>
<top_tag>
<tag>value_3</tag>
<other_tags></other_tags>
</top_tag>
<top_tag>
<tag>value_n</tag>
<other_tags></other_tags>
</top_tag>
</outer_tag>
次の XSLT は、要素をコピーせずに内容を無視することで、すべてのtop_tag
要素を削除します。value_3
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="*">
<xsl:element name="{name()}">
<xsl:apply-templates select="child::node()"></xsl:apply-templates>
</xsl:element>
</xsl:template>
<xsl:template match="top_tag[tag = 'value_3']">
</xsl:template>
</xsl:stylesheet
すべての主要なプログラミング言語には、XSLT に従って XML 入力を処理できるライブラリが少なくともいくつかあります。コマンド ライン ツールと UI ベースのアプリケーション (IDE だけでなく、IDE) でも同様に実行できます。最後に、次のような処理命令を含む xsl ファイルを含めると、Web ブラウザーは XSLT を使用してファイルを変換できます。
<?xml-stylesheet type="text/xsl" href="example.xsl"?>