jq объединяет поля из массива объектов в 2 json файлах в 3-й json файл - PullRequest
0 голосов
/ 30 апреля 2020

file1. json

[
  {
    "a": "a",
    "b": "b"
  },
  {
    "a": "a",
    "b": "b"
  }
]

file2. json

[
  {
    "c": "c"
  },
  {
    "c": "c"
  }
]

желаемый вывод: file3. json

[
  {
    "a": "a",
    "b": "b",
    "c": "c"
  },
  {
    "a": "a",
    "b": "b",
    "c": "c"
  }
]

1 Ответ

1 голос
/ 30 апреля 2020

В этом типе проблемы transpose (думаю, zip) часто можно использовать для создания компактных решений. В данном случае:

jq -s 'transpose | map(add)' file1.json file2.json

jq's transpose также можно использовать с массивами, которые не имеют одинаковую длину.

...