Ich muss ein Array (von AWS-Instanz-IDs) durchlaufen, dann ziehen Tags und fügen sie in ein Array mit jq.jq - in for-Schleife, ein einzelnes neues Array erstellen, dann Schlüssel/Wert-Paare anhängen
Ich habe Variablen, die meine Bedürfnisse definieren. In diesem Fall:
VolumeId
Tag1Value
Tag2Value
Tag3Value
Sie ändern sich, wenn ich in einer for-Schleife durchlaufen. Ich weiß, wie ein neues Array zu erstellen:
jq -n --arg v "$VolumeId" '[{"VolumeId": $v}]'
Doch diese jedes Mal ein neues JSON-Array erstellt. Ich brauche es einmal erstellt und dann daran angehängt, während ich durch die Schleife gehe.
Der Ausgang ich suche ist ein neu JSON-Array erstellen:
[
{
"VolumeId": $VolumeId,
"Tag1": $Tag1Value,
"Tag2": $Tag2Value,
"Tag3": $Tag3Value
},
{
"VolumeId": $VolumeId,
"Tag1": $Tag1Value,
"Tag2": $Tag2Value,
"Tag3": $Tag3Value
},
{
"VolumeId": $VolumeId,
"Tag1": $Tag1Value,
"Tag2": $Tag2Value,
"Tag3": $Tag3Value
}
]
Jede Hilfe ist wirklich zu schätzen. Hier
Dank @peak Es funktioniert, aber es gibt ein Problem. Während ich durch eine for-Schleife iteriere, bekomme ich jedes Mal neue Arrays. Irgendeine Möglichkeit, es 1 Array zu machen? – user6127511
Die Idee besteht darin, die Ausgabe der gesamten "for" -Schleife an jq zu übergeben. In Anlehnung an (für ....; do ... done) | jq -s ... – peak
Auch (und ich entschuldige mich dafür, meine Ursprungsfrage nicht klar zu machen), müsste ich das neue Array einer Variablen zuweisen, damit ich es später mit einem anderen Array zusammenführen kann. '| new_array = $ (jq -s 'map ({VolumeId:. [0] .... 'funktioniert nicht – user6127511