#json #jq
Вопрос:
У меня есть файл json, который имеет следующие структуры
{
"a":"aval",
"b":{},
"c":"cval"
}
У меня есть еще один файл json со следующим содержимым
{
"b1":"b1val","b2":"b2val"
}
Я хочу вставить объект json из файла 2 в «b» из файла 1
{
"a":"aval",
"b":{
"b1":"b1val","b2":"b2val"
},
"c":"cval"
}
как мне это сделать с помощью JQ
Ответ №1:
Предполагая, что файл № 2 может быть не пустым, вы можете просто назначить input
.b
.
jq '.b = input' file1 file2
В противном случае вы бы использовали следующее, чтобы сохранить исходное значение .b
, когда файл #2 пуст.
jq -n 'input | .b = first(inputs, .b)' file1 file2
Комментарии:
1. Миллион раз спасибо, я потратил на это так много времени, что я бы ни за что не догадался об этом ответе.