Ich habe eine Datei mit folgendem Format:Wie verwende ich jq, um ein bestimmtes Element in einem JSON-Array auszuwählen, dessen Reihenfolge sich ständig ändert?
{
"files":[
{
"BLOCK1":{
"SUBBLOCK1":{
"akey1":"avalue1",
"bkey1":"bvalue1",
"ckey1":"cvalue1"
},
"dkey1":"dvalue1",
"key":"evalue1"
}
},
{
"BLOCK-2":{
"SUBBLOCK2":{
"akey2":"avalue2",
"bkey2":"bvalue2"
},
"ckey2":"cvalue2",
"key":"dvalue2"
}
},
{
"BLOCK-A":{
"SUBBLOCKA":{
"akeyA":"avalueA",
"bkeyA":"bvalueA"
},
"ckeyA":"cvalueA",
"key":"dvalueA"
}
}],
"NOBLOCK":"value",
"key":"NOBLOCKvalue"
}
ich folgendes die jq Aussage bin mit "bvalueA" zu isolieren:
value=$(jq -r '.files | .[2] | .["BLOCK-A"].SUBBLOCKA.bkeyA' jqtest)
Welche ganz gut funktioniert. Aber die Datei ändert die Reihenfolge jede Nacht. Also könnte BLOCK-A eine Nacht das Element 0 sein, 1 die nächste, und so weiter. Wie kann ich jq ändern, um immer auf BLOCK-A zu bohren, egal welches Element im Array es ist?
Ich hatte gehofft, dass Sie hier antworten. – hek2mgl