Объединение json файлов - объединение в один файл dict json - PullRequest
1 голос
/ 10 марта 2020

здесь 3 JSON файлы

Файл1

{
  "component1": [
  ]
}

Файл2

{
  "component2": [
  ]
}

Файл3

{
  "component3": [
  ]
}

Не найти командная строка jq, которая выдаст этот JSON файл как вывод jq:

{
  "components": {
     "component1": [
      ],
     "component2": [
      ],
     "component3": [
      ]
   }
}

Большое спасибо за вашу поддержку. С наилучшими пожеланиями.

Ответы [ 2 ]

1 голос
/ 10 марта 2020

Вы можете просто использовать add, например

jq -s '{components: add}' file{1..3}.json

или:

jq -n '{components: [inputs]|add}' file{1..3}.json
1 голос
/ 10 марта 2020

Перебирайте объекты ввода один раз из inputs и добавляйте его к components, используя функцию reduce

jq -n 'reduce inputs as $d (.; .components += $d )' file{1..3}.json
...