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