【问题标题】:read multiple name value pair from xml tag从 xml 标签中读取多个名称值对
【发布时间】:2022-12-07 09:23:22
【问题描述】:

我有一个 xml 标签,其中有多个名称和值对

这是我文件中的 xml 标记

<AsyncLogger name="org.mule.service.http" level="WARN"/>

使用以下命令读取

  1. AsyncLogger 名称及其值
  2. 日志级别及其值
    cat log4j2.xml | perl -e 'while (<>) { next if (/<!--.*-->/);if (/<!--/) { while (<>) {last if (/-->/) }}else {print "$_"; }} ' | xmllint --format -| grep org.mule.service.http|awk -F'=' '{print $2,$4}'
    

    这就是它正在打印的内容 “org.mule.service.http”级别

    期望以逗号分隔的输出

    org.mule.service.http,警告

【问题讨论】:

    标签: linux bash shell perl awk


    【解决方案1】:

    像这样:

    $ xmlstarlet sel -t -v 'concat(//AsyncLogger/@name, ",", //AsyncLogger/@level)' file.xml
    org.mule.service.http,WARN
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-07-09
      相关资源
      最近更新 更多