我gcloud compute instances list
在脚本中使用该命令,但我担心确切的输出格式不是静态的.我该怎么办?
您应该使用--format
可用于大多数gcloud
命令的标志.
例如,如果您希望获得与当前(截至撰写此答案的时间)格式完全相同的输出,则可以运行:
$ gcloud compute instances list --format="table( name, zone.basename(), machineType.basename(), scheduling.preemptible.yesno(yes=true, no=''), networkInterfaces[0].networkIP:label=INTERNAL_IP, networkInterfaces[0].accessConfigs[0].natIP:label=EXTERNAL_IP, status )"
即使命令的默认输出有效,此命令的输出也不会在发行版之间更改(除非格式化的资源发生更改;这应该很少见).1 显示命令中资源的默认格式是正在进行的工作.2
您还可以为机器可读输出指定YAML或JSON等格式:
$ gcloud compute instances list --format=yaml $ gcloud compute instances list --format=json
请注意,此输出包含的信息远多于此命令的默认输出中的信息.这是构建自定义格式时必须使用的信息.
CSV是另一种格式选项.就像table
,它需要一个投影 - 一个如何打印每一行的规范.3
$ gcloud compute instances list --format="csv(name,zone,status)" name,zone,status example-instance,us-central1-f,RUNNING ...
有关的格式设置功能的更多信息gcloud
,请参阅输出gcloud topic formats
和gcloud topic projections
.
您可以通过运行查看所有可能的字段gcloud compute instances list --format=flattened
.
对于某些命令,gcloud beta test android locales list
您可以传递--verbosity=INFO
标记并查找INFO: Display format
.
这是因为CSV数据不能像JSON或YAML那样嵌套,并且打印的数据结构可能是嵌套的.