结果返回过滤

最近更新时间:2024-09-27 15:56:11

我的收藏
某些命令的返回结果较多,若您需查看某些特定内容,可以对返回结果进行过滤。

操作步骤

本文以云服务器 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 TotalCount
4
指定某个数组类型对象的第 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"
}
]