【问题标题】:Exclude JSON array fields for specifc values排除特定值的 JSON 数组字段
【发布时间】:2018-06-29 10:36:36
【问题描述】:

假设我想从json 大文件中提取特定字段的CSV,该文件由API 生成...所有感兴趣的内容都在一个数组中。

jq -r ".array[] | [.uniqV,.V1,.V2,.V3] | @csv" something.json

...但是如果唯一值以某个字符串开头(例如,BAD-),我想完全排除数组成员。 我可以做这样的事情......

jq -r ".array[] | [.uniqV,.v1,.v2,.v3] | @csv" something.json | egrep -v ^\"BAD-

...但是在jq 本身中排除这种模式会更好/更有效。怎么可能实现?

【问题讨论】:

    标签: json linux jq


    【解决方案1】:

    在构建馈送到@csv 的数组之前过滤来自.array 的记录。

    jq -r '.array[] | 
             select(.uniqV | startswith("BAD-") | not) |
             [.uniqV, .v1, .v2, .v3] |
             @csv' something.json
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-28
      • 2014-04-29
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多