jq
tem um sinalizador para alimentar o conteúdo real do JSON com seu sinal --argjson
. O que você precisa fazer é armazenar o conteúdo do primeiro arquivo JSON em uma variável no contexto de jq
e atualizá-lo no segundo JSON
jq --argjson groupInfo "$(<input.json)" '.[].groups += [$groupInfo]' orig.json
A parte "$(<input.json)"
é a construção de redirecionamento de shell para gerar o conteúdo do arquivo fornecido e com o argumento para --argjson
é armazenado na variável groupInfo
. Agora você adiciona-o à matriz groups
na parte real do filtro.
Colocando de outra forma, a solução acima é equivalente a fazer isso
jq --argjson groupInfo '{"id": 9,"version": 0,"lastUpdTs": 1532371267968,"name": "Training" }' \
'.[].groups += [$groupInfo]' orig.json