【发布时间】:2017-07-21 16:30:48
【问题描述】:
我想搜索一个 XML 文件以提取包含此字符串的特定 XML 块 58B338939C5B1970E1008000AC10E225_HCA_13
我可以通过以下命令做到这一点:
awk 'BEGIN{RS="<[/]?WorkResponseMessage>"} /58B338939C5B1970E1008000AC10E225_HCA_13/{print $0,"</WorkResponseMessage>"}' ag1.xml > ag2.xml
我的查询是我想从命令行传递一个变量中的搜索字符串并使用该变量进行搜索,例如:
awk 'BEGIN{RS="<[/]?WorkResponseMessage>"} /$m/{print $0,"</WorkResponseMessage>"}' ag1.xml > ag2.xml
这里的“m”是我的变量。我能够获得“m”内的值,但它似乎不适用于 awk 命令。我也尝试对 m 使用引号(“”,''),但这也不起作用。 awk -v 选项也不适用于此
【问题讨论】:
-
使用 XML/HTML 解析器(xmllint、xmlstarlet ...)。
-
.. 你的输入在哪里
XML?