某些命令的返回结果较多,若你需查看某些特定内容,可以对返回结果进行过滤。
一、操作步骤
这篇以云服务器 CVM DescribeZones 接口的返回为例,展示了不同过滤方式,及其返回结果:
·不加任何过滤时的输出。
[root@VM_180_248_centos ~]# tccli cvm DescribeZones{ "TotalCount": 3, "ZoneSet": [ { "ZoneState": "AVAILABLE", "ZoneId": "100001", "Zone": "ap-guangzhou-1", "ZoneName": "广州一区" }, { "ZoneState": "AVAILABLE", "ZoneId": "100003", "Zone": "ap-guangzhou-3", "ZoneName": "广州三区" }, { "ZoneState": "AVAILABLE", "ZoneId": "100004", "Zone": "ap-guangzhou-4", "ZoneName": "广州四区" } ], "RequestId": "4fd313a6-155f-4c7a-bf86-898c02fcae02"}
·只看某个字段。
[root@VM_180_248_centos ~]# tccli cvm DescribeZones –filter TotalCount3
·指定某个数组类型对象的第 N 个子对象的信息。
注意:MacOS 系统使用如下命令可能会报错 zsh: no matches found: xxx,这时需要将说明过滤行为的内容用单引号包裹起来。
[root@VM_180_248_centos ~]# tccli cvm DescribeZones –filter ZoneSet[0]{ "ZoneState": "AVAILABLE", "ZoneId": "100001", "Zone": "ap-guangzhou-1", "ZoneName": "广州一区"}
·指定数组类型对象下所有某个名称的子对象的某个字段。
[root@VM_180_248_centos ~]# tccli cvm DescribeZones –filter ZoneSet[*].ZoneName[ "广州一区", "广州三区", "广州四区"]
·过滤数组里的子对象,同时还以新的名称展示。
注意:需要将说明过滤行为的内容用单引号包裹起来。
[root@VM_180_248_centos ~]# tccli cvm DescribeZones –filter 'ZoneSet[*].{name:ZoneName, id:ZoneId}'[ { "name": "广州一区", "id": "100001" }, { "name": "广州三区", "id": "100003" }, { "name": "广州四区", "id": "100004" }]