grupo jq por e Incrementar ao mesmo tempo
Amostrainput1.json
[{
"organizationId": "org1",
"status": "UP",
"server": "server1",
"somekey1" : "somevalue1"
},
{
"organizationId": "org1",
"status": "DOWN",
"server": "server2",
"somekey2" : "somevalue2"
},
{
"organizationId": "org1",
"status": "DOWN",
"server": "server3"
},
{
"organizationId": "org2",
"server": "server1",
"status": "UP",
"somekey2" : "somevalue2"
},
{
"organizationId": "org2",
"server": "server2",
"status": "UP",
"somekey4" : "somevalue4"
}]
Esperadooutput.json
[{
"organizationId": "org1",
"server1": "UP",
"server2": "DOWN",
"server3": "DOWN",
"Down_Count": 2,
"somekey2" : "somevalue2"
},
{
"organizationId": "org2",
"server1": "UP",
"server2": "UP",
"Down_Count": 0,
"somekey2" : "somevalue2"
}]
A entrada é um objeto de matriz de dois arquivos. Meu objetivo é
para incrementar e preencher o novo campoDown_Count
agrupando pororganizationId
. Eu posso ter vários registros com o mesmoorganizationId
. Portanto, a contagem deve ser incrementada esse número de vezes sujeito ao statusDOWN
.Mesclarserver
estatus
Campos. Por exemplo"server":"server1", "status":"down"
deve vir comoserver1:down
diretamente na saída final. Eu posso tentar este independentemente usandojq '.[] |= . + {(.server):.status}'
todas as chaves não estão disponíveis em todos os objetos. Portanto, eu devo poder adicionar as chaves que quero na saída final. Vamos supor que eu sei o nome da chave que quero adicionar. Na saída final, eu adicionei apenas"somekey2" : "somevalue2"
Estou encontrando algumas dificuldades para conseguir tudo isso junto usandojq
processador de linha cmd. Alguma sugestão, por favor?