Вывести команду CLI AWS с фильтрами в CSV без jq - PullRequest
0 голосов
/ 15 декабря 2018

Есть ли способ вывести AWS cli с фильтрами в формате csv?

Например, если я хочу взять эту команду и вывести в csv:

aws ec2 describe-images --owner self   --query 'Images[*].{ID:ImageId,"Virtualization Type":VirtualizationType}'

Как бы ясделай это?Обычно я использовал бы jq для вывода aws cli в csv.Но в этом случае я смог получить информацию, которую хотел получить, с опцией фильтра вместо jq.

Это полная команда, которую я хочу вывести в CSV:

aws ec2 describe-images --owner self   --query 'Images[*].{ID:ImageId,"Virtualization Type":VirtualizationType,Architechture:Architecture,Hypervisor:Hypervisor,State:State,ImageID:ImageId,"Device Names":BlockDeviceMappings[].DeviceName,"Snapshot IDs":BlockDeviceMappings[].Ebs.SnapshotId,"Delete On Termination":BlockDeviceMappings[].Ebs.DeleteOnTermination,"Voluem Type":BlockDeviceMappings[].Ebs.VolumeType,"Volume Size":BlockDeviceMappings[].Ebs.VolumeSize,Encrypted:BlockDeviceMappings[].Ebs.Encrypted,"Image Location":ImageLocation,"Root Device Type":RootDeviceType,"Owner ID":OwnerId,"Creation Date":CreationDate,Public:Public,"Image Type":ImageType,Name:Name}'

1 Ответ

0 голосов
/ 18 декабря 2018

Единственное решение, которое я могу придумать, - вывести текст --output text, а затем заменить пробелы запятыми:

aws ec2 describe-images --owner self   --query 'Images[*].{ID:ImageId,"Virtualization Type":VirtualizationType}' --output text

Вывод

ami-1234567890    hvm
ami-1a2b3c4d5e    hvm
ami-9876543210    hvm

Заменить пробелы назапятая.Есть много способов сделать это, используя sed или tr или awk или paste.

aws ec2 describe-images --owner self   --query 'Images[*].{ID:ImageId,"Virtualization Type":VirtualizationType}' --output text | sed -E 's/\s+/,/g'

Output

ami-1234567890,hvm
ami-1a2b3c4d5e,hvm
ami-9876543210,hvm
...