AWS CLI:如何实现描述实例的特定输出格式?

Mik*_*ike 2 amazon-web-services aws-cli

我试图拉出我们所有实例的列表,格式如下:

Tag:Name.Value instance-id private-ip-address

这是我正在使用的命令:

aws ec2 describe-instances --query 'Reservations[*].Instances[*].[Tags[?Key==`Name`].Value[],InstanceId,PrivateIpAddress]' --output text
Run Code Online (Sandbox Code Playgroud)

这就是我得到的输出:

instance-id private-ip-address
tag:name.value
Run Code Online (Sandbox Code Playgroud)

即使我在其他所有事情之前都得到了 Tag 位,它仍然列在相应 ID/IP 下方的新行上。

有任何解决这个问题的方法吗?还有任何方法来检索这样的格式:

Tag:name.value,instance-id,private-ip-address

谢谢

Dmi*_*ich 7

命令行界面

aws ec2 describe-instances --query 'Reservations[*].Instances[*].[[Tags[?Key==`Name`].Value[],InstanceId, PrivateIpAddress][]]' --output text | sed 's/\t/,/g' 

Run Code Online (Sandbox Code Playgroud)

它可以在不使用jqaws cli 查询语法的情况下实现。

您需要使用[]运算符将标签名称与其他字段“扁平化” 。输出将按制表符分割,因此sed 's/\t/,/g'用逗号替换制表符。

注意:在 Mac 上sed 's/\t/,/g'可能无法工作,因为\t它不被识别为 Tab 字符。要插入制表符,请按Ctrl+V,然后按Tab