You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用jq将ip.json的值合并到specs.json的新字段中?

用jq合并两个JSON文件的字段实现方案

当然可以用jq工具实现这个需求,以下是具体步骤:

源文件内容

ip.json

{
    "host1": "1.1.1.1",
    "host2": "1.1.1.2",
    "host3": "1.1.1.3"
}

specs.json

{
    "host1": {
        "cores": 2,
        "memory": 4
    },
    "host2": {
        "cores": 4,
        "memory": 8
    },
    "host3": {
        "cores": 2,
        "memory": 6
    }
}

实现命令

直接在终端执行以下jq命令,即可将ip.json中的IP地址作为address字段合并到specs.json的对应主机对象中,并输出到result.json:

jq --argfile ips ip.json 'with_entries(.value += {address: $ips[.key]})' specs.json > result.json

生成的result.json内容

{
    "host1": {
        "cores": 2,
        "memory": 4,
        "address": "1.1.1.1"
    },
    "host2": {
        "cores": 4,
        "memory": 8,
        "address": "1.1.1.2"
    },
    "host3": {
        "cores": 2,
        "memory": 6,
        "address": "1.1.1.3"
    }
}

命令解释

  • --argfile ips ip.json:将ip.json的内容加载到jq变量$ips中,方便后续引用
  • with_entries(...):遍历specs.json的每一组键值对(即每个主机的条目)
  • .value += {address: $ips[.key]}:对每个主机的对象进行扩展,添加address字段,字段值从$ips中根据当前主机的键(如host1)获取对应的IP地址

内容的提问来源于stack exchange,提问作者pepoluan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.01 20:17:26