Amazon web services 使用jq从json中提取两个元素

Amazon web services 使用jq从json中提取两个元素,amazon-web-services,amazon-ec2,jq,aws-cli,Amazon Web Services,Amazon Ec2,Jq,Aws Cli,我需要建立一份我们的非盟特派团名单。我需要获取AMI ID和AMI名称。我如何在一个命令中做到这一点 现在我只能去: aws ec2 describe-images --owners self --profile=nonprod | jq -r '.Images[].ImageId' 要获取AMI ID,或者我可以: aws ec2 describe-images --owners self --profile=nonprod | jq -r '.Images[].Name' 获取AMI名

我需要建立一份我们的非盟特派团名单。我需要获取AMI ID和AMI名称。我如何在一个命令中做到这一点

现在我只能去:

aws ec2 describe-images --owners self --profile=nonprod | jq -r '.Images[].ImageId'
要获取AMI ID,或者我可以:

aws ec2 describe-images --owners self --profile=nonprod  | jq -r '.Images[].Name'

获取AMI名称。但是有没有一种方法可以在一个命令中同时获取这两个元素?

使用CLI的(JMESPath
query
选项来提取所需的值,而不是
jq

aws ec2 describe-images --owners self --query 'Images[*].[ImageId, Name]' --output text
输出

ami-12345678    MY-AMI-2018-05
ami-90123456    MY-AMI-2018-06

使用CLI的(JMESPath
query
选项来提取所需的值,而不是
jq

aws ec2 describe-images --owners self --query 'Images[*].[ImageId, Name]' --output text
输出

ami-12345678    MY-AMI-2018-05
ami-90123456    MY-AMI-2018-06

以下是如何组合两个jq命令:

jq -r '.Images[] | (.ImageId, .Name)'

以下是如何组合两个jq命令:

jq -r '.Images[] | (.ImageId, .Name)'