阿里云产品的查询接口会返回JSON结构化数据,不方便阅读。您可以通过使用阿里云CLI的高级过滤功能,获取您感兴趣的字段,且默认表格化输出。

–output选项字段说明

为了使命令输出结果更直观,阿里云CLI提供了–output选项,用以提取结果中感兴趣的字段,且默认表格化输出。–output包含以下字段:

字段名 描述 补充说明
cols 表格的列名,需要与json数据中的字段相对应。 例如,ECS DescribeInstances接口返回结果中的字段InstanceId以及Status
rows 指定过滤字段所在的JMESPath路径。 通过jmespath查询语句来指定表格行在json结果中的数据来源。
num 指定num=true,开启行号列,行号以数字0开始。 默认num=false

示例场景

阿里云产品的查询接口会返回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       },       Instance": [       {         "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