如何打印AWS实例列表:1)实例名称2)实例大小3)AWS:cloudformation:stack名称



我目前有以下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

返回:

  • 自然管理
  • 管理
  • t2.微米

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

如果你想在一行中看到所有内容都用逗号分隔,你可以这样写:

/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 "," -

与选项卡相同:

/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 "t" -

因此,答案是使用bash管道并粘贴

您可能返回了多个实例,并且可以使用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=""}'

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

最新更新