某些命令的返回结果较多,若您需查看某些特定内容,可以对返回结果进行过滤。
操作步骤
本文以云服务器 CVM DescribeZones 接口的返回为例,展示了不同过滤方式,及其返回结果:
不加任何过滤时的输出。
[root@VM_180_248_centos ~]# tccli cvm DescribeZones{"TotalCount": 4,"ZoneSet": [{"ZoneState": "AVAILABLE","ZoneId": "100001","Zone": "ap-guangzhou-1","ZoneName": "广州一区"},{"ZoneState": "AVAILABLE","ZoneId": "100002","Zone": "ap-guangzhou-2","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 TotalCount4
指定某个数组类型对象的第 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": "100002"},{"name": "广州三区","id": "100003"},{"name": "广州四区","id": "100004"}]