Как объединить файлы JSON, используя JQ или любой инструмент?

Ipcalc может вам помочь:

ipcalc -c 

0
21.10.2018, 12:31
1 ответ

Если я правильно понял ваш вопрос, вы просто хотите вывести массив, содержащий объект в каждом файле. В этом случае -sуже сделает это за вас, так что вам просто нужно

jq -s. file1 file2

Если вам нужны дополнительные преобразования, отредактируйте вопрос и дайте краткое описание того, что вам нужно. (Я не сравнивал строку ожидаемого результата -по строке -с фактическим результатом ).

Редактировать

Я все еще не совсем уверен в общем характере необходимого вам преобразования, но если формат точно такой же, как в примере, и все, что вы хотите, это заменить поле valuesв первом файле содержимым поле valuesво втором файле, а все остальное оставьте, попробуйте

jq -s '.[0][1].criteria[0].options.values=.[1].criteria[0].options.values' file1 file2

Здесь -sвозвращает файлы в виде массива, поэтому .[0]— это первый файл, а .[1]— второй файл. Затем он просто выбирает статические пути и в первую очередь обновляет одно соответствующее поле.

Если порядок или количество ваших объектов является переменным или если замена должна происходить только для совпадающих объектов и т. д., обновите вопрос.

2
28.01.2020, 02:41

Теги

Похожие вопросы