【问题标题】:How to consolidate JSON records from multiple files using jq如何使用 jq 合并来自多个文件的 JSON 记录
【发布时间】:2020-03-17 10:02:28
【问题描述】:

我有一个文件名列表作为 shell 变量,它们的内容如下所示

file_names=('one.json' 'two.json')

one.json:

{
      "key":"k1",
      "host": "..",
      "name": ".."    
}

两个.json:

{
      "key":"k2",
      "host": "..",
      "name": ".."
}

我想用上述文件中的所有内容创建一个合并文件。可以有超过 2 个文件。在合并文件中,key 值将成为 JSON 记录的外层键。例如:

{
    "k1": {
      "host": "..",
      "name": ".."   
    },
    "k2": {
      "host": "..",
      "name": ".."   
    }
}

如何使用 jq 实现这一点?

【问题讨论】:

    标签: json jq


    【解决方案1】:

    使用INDEX

    jq -n 'INDEX(inputs; .key) | map_values(del(.key))' "${file_names[@]}"
    

    【讨论】:

      猜你喜欢
      • 2013-11-01
      • 1970-01-01
      • 2019-06-11
      • 1970-01-01
      • 1970-01-01
      • 2023-03-22
      • 1970-01-01
      • 2023-03-26
      • 1970-01-01
      相关资源
      最近更新 更多