【问题标题】:extract xml using a variable in awk使用 awk 中的变量提取 xml
【发布时间】: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 选项也不适用于此

【问题讨论】:

标签: bash shell awk


【解决方案1】:

试试这个 -

m="58B338939C5B1970E1008000AC10E225_HCA_13"
echo $m
awk -v m="$m" 'BEGIN{RS="<[/]?WorkResponseMessage>"} $0 ~ m {print $0,"</WorkResponseMessage>"}' ag1.xml > ag2.xml

【讨论】:

    猜你喜欢
    • 2019-01-17
    • 2014-06-14
    • 2020-12-15
    • 2016-08-17
    • 1970-01-01
    • 2012-12-12
    • 2019-11-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多