过滤且表格化输出结果

更新时间:

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

--output选项字段说明

为了使命令输出结果更直观,阿里云CLI提供了--output选项,您可以使用该选项提取返回结果中感兴趣的字段,且默认以表格形式输出。

--output包含以下字段:

字段名

描述

补充说明

cols

表格的列名,需要与JSON数据中的字段相对应。

例如,ECS DescribeInstances接口返回结果中的字段InstanceId以及Status。

rows

指定过滤字段所在的JMESPath路径。

通过JMESPath查询语句来指定表格行在JSON结果中的数据来源。

num

指定num=true,开启行号列,行号以数字0开始。

默认num=false

示例场景

阿里云产品的查询接口会返回JSON结构化数据,不方便阅读。

  1. 以查询所有ECS实例信息为例,执行如下命令。

    aliyun ecs DescribeInstances
  2. 系统显示类似如下输出结果。

    {
      "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
          }
        ]
      }
    }

示例命令

示例一

  1. 执行如下命令,过滤示例场景返回结果中的字段RequestId。该字段作为根元素,无需指定为rows字段。

    aliyun ecs DescribeInstances --output cols=RequestId
  2. 系统显示类似如下输出结果。

    RequestId
    ---------
    2B76ECBD-A296-407E-BE17-7E668A609DDA

示例二

  1. 执行如下命令,过滤示例场景返回结果中的字段InstanceId以及Status。这两个字段所在的JMESPath路径为Instances.Instance[],则rows="Instances.Instance[]"。具体JMESPath书写方法,请参见JMESPath Tutorial

    aliyun ecs DescribeInstances --output cols="InstanceId,Status" rows="Instances.Instance[]"
  2. 系统显示类似如下输出结果。

    InstanceId             | Status
    ----------             | ------
    i-12345678912345678123 | Stopped
    i-abcdefghijklmnopqrst | Running
  3. 如果需要输出行号,则指定num=true,系统显示类似如下输出结果。

    Num | InstanceId             | Status
    --- | ----------             | ------
    0   | i-12345678912345678123 | Stopped
    1   | i-abcdefghijklmnopqrst | Running