【问题标题】:Awk to get the attribute value from XML fileawk 从 XML 文件中获取属性值
【发布时间】:2023-01-10 19:14:35
【问题描述】:

用于从下面提到的 xml 中获取来自标签 c 的属性代码的属性值

随机.xml

<a>
    <b>
        <c id="123" code="abc" date="12-12-2022"/>
        <c id="123" code="efg" date="12-12-2022"/>
        <c id="123" date="12-12-2022"/>
    </b>
</a>

目前的逻辑是:

cat random.xml | egrep "&lt;c.*/&gt;" | awk -F1 ' /code=/ {f=NR} f&amp;&amp;NR-1==f' RS='"'

上述逻辑如何工作以获得值代码来自标签C

获得预期的输出:

abc
efg

【问题讨论】:

    标签: bash shell awk


    【解决方案1】:

    如果您的输入总是看起来像示例 XML,那么您可以将 code 属性本身设置为字段分隔符,并将 &lt; 设置为记录分隔符,这样当第一个字段是标签时,您可以轻松地将值提取为第二个字段姓名c

    awk -F' .*code="|" ' -vRS='<' '$1=="c"{print $2}'
    

    演示:https://awk.js.org/?snippet=Lz6yx7

    【讨论】:

      猜你喜欢
      • 2021-05-07
      • 2020-08-18
      • 1970-01-01
      • 1970-01-01
      • 2013-05-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-11-05
      相关资源
      最近更新 更多