У меня есть каталог из примерно 100 JSON файлов, каждый из которых представляет собой массив из 100 простых записей, которые я хочу объединить в один файл для включения в качестве данных c в приложении, поэтому мне не нужно совершать повторные вызовы API для извлечения мелких кусочков (Я могу загружать только 100 записей за раз; поэтому у меня есть 100 коротких файлов.)
Вот пример файла, сокращенный до двух записей для отображения здесь:
[
{
"id": 11531,
"title": "category 1",
"count": 5
},
{
"id": 11532,
"title": "category 2",
"count": 5
}
]
Мои исследования привели к решению, которое работает, но только для двух файлов с двумя записями в каждом:
jq -s '.[0] + .[1]' file1.json file2.json > output.json
Этот источник также предположил, что эта строка будет работать для обработки каталога (только сейчас в нем два файла):
jq -s 'reduce .[] as $item ({}; . * $item)' json_files/* > output.json
но я получаю сообщение об ошибке:
jq: error (at json_files/categories-11-20.json:0): object ({}) and array ([{"id":1153...) cannot be multiplied
Я подумал, что, возможно, проблема заключалась в *
попытке умножения, поэтому я попытался +
в этом месте, но я получаю сообщение ... cannot be added.
.
Есть ли способ сделать это через JQ или есть лучший инструмент?