過濾且表格化輸出結(jié)果
阿里云產(chǎn)品的查詢接口會返回JSON結(jié)構(gòu)化數(shù)據(jù),不方便閱讀。您可以通過使用阿里云CLI的高級過濾功能,獲取您感興趣的字段,且默認(rèn)表格化輸出。
--output選項(xiàng)字段說明
為了使命令輸出結(jié)果更直觀,阿里云CLI提供了--output
選項(xiàng),您可以使用該選項(xiàng)提取返回結(jié)果中感興趣的字段,且默認(rèn)以表格形式輸出。
--output
包含以下字段:
字段名 | 描述 | 補(bǔ)充說明 |
cols | 表格的列名,需要與JSON數(shù)據(jù)中的字段相對應(yīng)。 | 例如,ECS DescribeInstances接口返回結(jié)果中的字段InstanceId以及Status。 |
rows | 指定過濾字段所在的JMESPath路徑。 | 通過JMESPath查詢語句來指定表格行在JSON結(jié)果中的數(shù)據(jù)來源。 |
num | 指定 | 默認(rèn) |
示例場景
阿里云產(chǎn)品的查詢接口會返回JSON結(jié)構(gòu)化數(shù)據(jù),不方便閱讀。
以查詢所有ECS實(shí)例信息為例,執(zhí)行如下命令。
aliyun ecs DescribeInstances
系統(tǒng)顯示類似如下輸出結(jié)果。
{ "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 } ] } }
示例命令
示例一
執(zhí)行如下命令,過濾示例場景返回結(jié)果中的字段
RequestId
。該字段作為根元素,無需指定為rows
字段。aliyun ecs DescribeInstances --output cols=RequestId
系統(tǒng)顯示類似如下輸出結(jié)果。
RequestId --------- 2B76ECBD-A296-407E-BE17-7E668A609DDA
示例二
執(zhí)行如下命令,過濾示例場景返回結(jié)果中的字段
InstanceId
以及Status
。這兩個字段所在的JMESPath路徑為Instances.Instance[]
,則rows="Instances.Instance[]"
。具體JMESPath書寫方法,請參見JMESPath Tutorial。aliyun ecs DescribeInstances --output cols="InstanceId,Status" rows="Instances.Instance[]"
系統(tǒng)顯示類似如下輸出結(jié)果。
InstanceId | Status ---------- | ------ i-12345678912345678123 | Stopped i-abcdefghijklmnopqrst | Running
如果需要輸出行號,則指定
num=true
,系統(tǒng)顯示類似如下輸出結(jié)果。Num | InstanceId | Status --- | ---------- | ------ 0 | i-12345678912345678123 | Stopped 1 | i-abcdefghijklmnopqrst | Running