json - AWS CLI 命令根据 EC 标签名称查询 ebs volume-id
问题描述
需要一些帮助来修复此查询
aws ec2 describe-instances --filters "Name=tag:Name,Values=UST1TWASDEVP02A" --query "Reservations[*].Instances[*].BlockDeviceMappings[*].Ebs.[VolumeId]"
这一直给我这个输出:
[
[
[
[
"vol-0eb27ed4482aa6b72"
],
[
"vol-0a8a5716d4abb92cc"
],
[
"vol-0adb47a85b3541697"
]
]
]
]
我只需要提取第二个值。
我能够使用 jq 来获得结果
aws ec2 describe-instances --filters Name=tag:Name,Values=UST1TWASDEVP02A" | jq -r .Reservations[0].Instances[0].BlockDeviceMappings[1].Ebs.VolumeId
谢谢
解决方案
您可以使用以下命令打印第二个 volumeID:
aws ec2 describe-instances --filters "Name=tag:Name,Values=UST1TWASDEVP02A" --query "Reservations[ ].Instances[ ].BlockDeviceMappings[*].[Ebs.VolumeId]" --output text | sed -n '2p'