如何打印具有以下内容的AWS实例列表:1)实例名称2)实例大小3)aws:cloudformation:stack-name?

时间:2019-01-11 15:29:39

标签: amazon-web-services amazon-ec2

我目前有以下AWS CLI命令:

$ /usr/local/bin/aws  ec2 describe-instances --profile test --region eu-central-1 --query 'Reservations[].Instances[].[InstanceType,Tags[?Key==`Name`].Value[],Tags[?Key==`DomainName`].Value[]]' --output text

这将返回:

  • nat.mgmt。
  • mgmt。
  • t2.micro

但是我希望看到它打印在同一行上,并以制表符或逗号分隔。

2 个答案:

答案 0 :(得分:0)

如果您想看到一行中的所有内容都用逗号分隔,则可以编写如下内容:

accessToken

与标签相同:

 /usr/local/bin/aws ec2 describe-instances --region eu-central-1 --query 'Reservations[].Instances[].[InstanceType,Tags[?Key==`Name`].Value[],Tags[?Key==`DomainName`].Value[]]' --output text | paste -sd "," -

因此,答案是使用bash pipelinepaste

答案 1 :(得分:0)

您可能返回了多个实例,并且可以使用awk将行合并为一个。

在这种情况下,为一个实例重新调整了3个值,因此我们可以将3行合并为1

逗号分隔符,添加

| awk '{line=line "," $0} NR%3==0{print substr(line,2); line=""}'

制表符分隔符,添加

| awk '{line=line "\t" $0} NR%3==0{print substr(line,2); line=""}'

,以便您在每一行中都有一个实例的信息。如果要提取更多信息,可以将3中的NR%3更改为要提取的信息数量