过滤且表格化输出结果
更新时间:
阿里云产品的查询接口会返回JSON结构化数据,不方便阅读。您可以通过使用阿里云CLI的高级过滤功能,获取您感兴趣的字段,且默认表格化输出。
--output选项字段说明
为了使命令输出结果更直观,阿里云CLI提供了--output
选项,您可以使用该选项提取返回结果中感兴趣的字段,且默认以表格形式输出。
--output
包含以下字段:
字段名 | 描述 | 补充说明 |
cols | 表格的列名,需要与JSON数据中的字段相对应。 | 例如,ECS DescribeInstances接口返回结果中的字段InstanceId以及Status。 |
rows | 指定过滤字段所在的JMESPath路径。 | 通过JMESPath查询语句来指定表格行在JSON结果中的数据来源。 |
num | 指定 | 默认 |
示例场景
阿里云产品的查询接口会返回JSON结构化数据,不方便阅读。
以查询所有ECS实例信息为例,执行如下命令。
aliyun ecs DescribeInstances
系统显示类似如下输出结果。
{ "PageNumber": 1, "TotalCount": 2, "PageSize": 10, "RequestId": "2B76ECBD-A296-407E-BE17-7E668A609DDA", "Instances": { "Instance": [ { "ImageId": "ubuntu_16_0402_64_20G_alibase_20171227.vhd", "InstanceTypeFamily": "ecs.xn4", "VlanId": "", "InstanceId": "i-12345678912345678123", "Status": "Stopped", //omit some fields }, { "ImageId": "ubuntu_16_0402_64_20G_alibase_20171227.vhd", "InstanceTypeFamily": "ecs.xn4", "VlanId": "", "InstanceId": "i-abcdefghijklmnopqrst", "Status": "Running", //omit some fields } ] } }
示例命令
示例一
执行如下命令,过滤示例场景返回结果中的字段
RequestId
。该字段作为根元素,无需指定为rows
字段。aliyun ecs DescribeInstances --output cols=RequestId
系统显示类似如下输出结果。
RequestId --------- 2B76ECBD-A296-407E-BE17-7E668A609DDA
示例二
执行如下命令,过滤示例场景返回结果中的字段
InstanceId
以及Status
。这两个字段所在的JMESPath路径为Instances.Instance[]
,则rows="Instances.Instance[]"
。具体JMESPath书写方法,请参见JMESPath Tutorial。aliyun ecs DescribeInstances --output cols="InstanceId,Status" rows="Instances.Instance[]"
系统显示类似如下输出结果。
InstanceId | Status ---------- | ------ i-12345678912345678123 | Stopped i-abcdefghijklmnopqrst | Running
如果需要输出行号,则指定
num=true
,系统显示类似如下输出结果。Num | InstanceId | Status --- | ---------- | ------ 0 | i-12345678912345678123 | Stopped 1 | i-abcdefghijklmnopqrst | Running
文档内容是否对您有帮助?