全部產品
Search
文件中心

Alibaba Cloud CLI:過濾且表格化輸出結果

更新時間:Jul 02, 2025

阿里雲產品的查詢介面會返回JSON結構化資料,不方便閱讀。您可以通過使用阿里雲CLI的進階過濾功能,擷取您感興趣的欄位,且預設表格化輸出。

--output選項欄位說明

為了使命令輸出結果更直觀,阿里雲CLI提供了--output選項,您可以使用該選項提取返回結果中感興趣的欄位,且預設以表格形式輸出。

--output選項包含以下欄位:

欄位名

描述

樣本值

cols

表格列名。

使用--output選項時需要以cols="<column1>,<column2>"形式確定表格與資料的映射關係。多個列名之間使用逗號,隔開。

  • 若JSON資料為object索引值對類型,該欄位需要與資料對應鍵名保持一致。

  • 若JSON資料為array數群組類型,該欄位可自訂顯示名稱,同時您需要手動添加數組元素索引。列名與索引之間使用冒號:隔開。

  • object類型:cols="InstanceId,Status"

  • array類型:cols="name:0,type:1"

rows

待過濾資料所在的JMESPath路徑。

阿里雲CLI將通過JMESPath查詢語句來指定表格行在JSON結果中的資料來源。

rows="Instances.Instance[]"

num

開啟行號顯示。

指定該欄位為true可開啟行號顯示,開啟後阿里雲CLI將在表格左側新增行號列並輸出行號,起始行號為0。該欄位預設值為false

num="true"

過濾樣本

樣本情境

阿里雲產品的查詢介面會返回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-1234567891234567****",
            "Status": "Stopped",
            "SecurityGroupIds": {
              "SecurityGroupId": [
                "sg-bp12345678912345****",
                "sg-bp98765432198765****"
              ]
            }
          },
          {
            "ImageId": "ubuntu_16_0402_64_20G_alibase_20171227.vhd",
            "InstanceTypeFamily": "ecs.xn4",
            "VlanId": "",
            "InstanceId": "i-abcdefghijklmnop****",
            "Status": "Running",
            "SecurityGroupIds": {
              "SecurityGroupId": [
                "sg-bp1abcdefghijklm****",
                "sg-bp1zyxwvutsrqpon****"
              ]
            }
          }
        ]
      }
    }

樣本一

  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

樣本三

  1. 執行如下命令,過濾樣本情境返回結果中的數群組類型欄位SecurityGroupId的具體元素。數組所在的JMESPath路徑為Instances.Instance[].SecurityGroupIds.SecurityGroupId

    aliyun ecs DescribeInstances --output cols="sg1:0,sg2:1" rows="Instances.Instance[].SecurityGroupIds.SecurityGroupId"
  2. 系統顯示類似如下輸出結果。

    sg1                     | sg2
    ---                     | ---
    sg-bp11234567891234**** | sg-bp19876543219876****
    sg-bp1abcdefghijklm**** | sg-bp1zyxwvutsrqpon****