Как напечатать список экземпляров AWS с: 1) именем экземпляра 2) Размером экземпляра 3) aws: cloudformation: stack-name? - PullRequest
0 голосов
/ 11 января 2019

У меня в настоящее время ниже команды CLI AWS:

$ /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.
  • Упр.
  • t2.micro

Но я бы хотел, чтобы он был напечатан в одной строке с разделением на табуляцию или запятую.

Ответы [ 2 ]

0 голосов
/ 11 января 2019

у вас может быть возвращено несколько экземпляров, и вы можете использовать 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 на количество информации, которое вы хотите извлечь

0 голосов
/ 11 января 2019

Если вы хотите, чтобы все в одной строке были разделены запятыми, вы можете написать что-то вроде этого:

 /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 pipe и paste

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...