0
我需要遍歷(AWS實例ID的數組)的數組,然後將標籤拉出並使用jq將它們添加到數組中。jq - in for loop,創建一個新數組,然後添加鍵/值對
我有變量定義我的需求。在這種情況下:
VolumeId
Tag1Value
Tag2Value
Tag3Value
它們隨着我在for循環中迭代而改變。我知道如何創建一個新的陣列:
jq -n --arg v "$VolumeId" '[{"VolumeId": $v}]'
但是,這會每次創建一個新的JSON數組。我需要創建一次,然後在循環中進行追加。
我找的輸出是一個新創建的JSON數組:
[
{
"VolumeId": $VolumeId,
"Tag1": $Tag1Value,
"Tag2": $Tag2Value,
"Tag3": $Tag3Value
},
{
"VolumeId": $VolumeId,
"Tag1": $Tag1Value,
"Tag2": $Tag2Value,
"Tag3": $Tag3Value
},
{
"VolumeId": $VolumeId,
"Tag1": $Tag1Value,
"Tag2": $Tag2Value,
"Tag3": $Tag3Value
}
]
任何幫助非常感謝。
由於@peak ,它的工作原理,但有一個問題。當我遍歷一個for循環時...我每次都得到新的數組。任何方式來使它1陣列? – user6127511
這個想法是將整個「for」循環的輸出傳遞給jq。沿着(for ...; do ... done)的路線行進jq -s ... – peak
另外(並且對於不清楚我的原始問題表示歉意),我需要將新數組分配給一個變量,以便稍後將其與另一個數組合並。 '| new_array = $(jq -s'map({VolumeId:。[0] ....'不起作用 – user6127511