将输出从 jq 转换为数组
convert the output from jq to array
我在 aws 帐户中有 dynamodb table,我想根据特定条件对其进行过滤并以数组形式获取结果
下面是使用 jq
的 aws cli 查询
aws dynamodb scan --table-name sample-table | jq .Items | jq 'map(select(.VpcId.S != "None")) ' | jq .[].VpcId.S
这是我得到的输出:
"vpc-yyyyyyyyyyyyyyyyy"
"vpc-zzzzzzzzzzzzzzzzz"
"vpc-XXXXXXXXXxxxxxxxx"
我希望输出为
[
"vpc-yyyyyyyyyyyyyyyyy",
"vpc-zzzzzzzzzzzzzzzzz",
"vpc-XXXXXXXXXxxxxxxxx"
]
这样我就可以将它传递给 terraform。
下面是实际命令的输出
aws dynamodb scan --table-name sample-table
{
"Items": [
{
"VpcId": {
"S": "vpc-yyyyyyyyyyyyyyyyy"
}
},
{
"VpcId": {
"S": "None"
}
},
{
"VpcId": {
"S": "vpc-xxxxxxxxxxxxxxxxx"
}
},
}
]
}
将 .[].VpcId.S
替换为 map(.VpcId.S)
。 .[]
语法从数组中取出元素。
您可以通过这种方式将不同的 jq
过滤器组合在一起:
.Items | map(select(.VpcId.S != "None") | .VpcId.S)
我在 aws 帐户中有 dynamodb table,我想根据特定条件对其进行过滤并以数组形式获取结果
下面是使用 jq
的 aws cli 查询aws dynamodb scan --table-name sample-table | jq .Items | jq 'map(select(.VpcId.S != "None")) ' | jq .[].VpcId.S
这是我得到的输出:
"vpc-yyyyyyyyyyyyyyyyy"
"vpc-zzzzzzzzzzzzzzzzz"
"vpc-XXXXXXXXXxxxxxxxx"
我希望输出为
[
"vpc-yyyyyyyyyyyyyyyyy",
"vpc-zzzzzzzzzzzzzzzzz",
"vpc-XXXXXXXXXxxxxxxxx"
]
这样我就可以将它传递给 terraform。
下面是实际命令的输出
aws dynamodb scan --table-name sample-table
{
"Items": [
{
"VpcId": {
"S": "vpc-yyyyyyyyyyyyyyyyy"
}
},
{
"VpcId": {
"S": "None"
}
},
{
"VpcId": {
"S": "vpc-xxxxxxxxxxxxxxxxx"
}
},
}
]
}
将 .[].VpcId.S
替换为 map(.VpcId.S)
。 .[]
语法从数组中取出元素。
您可以通过这种方式将不同的 jq
过滤器组合在一起:
.Items | map(select(.VpcId.S != "None") | .VpcId.S)