json jq将字段从一个文件添加到另一个文件

fkvaft9z  于 2023-01-14  发布在  其他
关注(0)|答案(1)|浏览(128)

我有2个文件(这是相当长):
file1.json(540个对象-为了便于使用,我只写2个模型)

[
  {
    "a": "apple",
    "b": "banana",
    "c": ["car1", "car2", "car3"],
    "d": ["doodle1", "doodle2", "doodle3"],
    "e": "elephant"
  },
  {
    "a": "aqua",
    "b": "bay",
    "c": ["carrot", "chile", "cucumber"],
    "d": ["dice", "drop", "dang"],
    "e": "elastic"
  }
]

file2.json(540个对象-为了便于使用,我只写2个模型)

[
  {
    "l": ["link1", "link2", "link3"]
  },
  {
    "l": ["link4", "link5", "link6"]
  }
]

预期结果

[
  {
    "a": "apple",
    "b": "banana",
    "c": ["car1", "car2", "car3"],
    "d": ["doodle1", "doodle2", "doodle3"],
    "e": "elephant",
    "l": ["link1", "link2", "link3"]
  },
  {
    "a": "aqua",
    "b": "bay",
    "c": ["carrot", "chile", "cucumber"],
    "d": ["dice", "drop", "dang"],
    "e": "elastic",
    "l": ["link4", "link5", "link6"]
  }
]

用jq有可能实现吗?还是我应该用其他编程语言,比如python或javascript来处理它?

kb5ga3dv

kb5ga3dv1#

jq是各种JSON处理的理想选择,在本例中,可以transpose两个文件内容的数组,然后add使用map

jq -n '[inputs] | transpose | map(add)' file1.json file2.json

Demo

相关问题