Gcloud json 格式获取不到机器类型的完整 url
Gcloud json format get not the full url of machine tpye
运行 gcloud 查询并尝试获取 json 的输出以仅包含实际机器类型而不是完整的 url.
gcloud compute instances list --project $projectname --format=json | jq -r '.[]| .name +","+.machineType'
打印为
$instancename,https://www.googleapis.com/compute/v1/projects/$projectname/zones/europe-west2-a/machineTypes/n1-standard-4
它目前打印出完整的机器类型,想知道是否有人知道缩短 url 以仅将机器类型作为字符串而不是完整的 url.
我也有这个 sed 来清除格式,但是如何在不删除名称的情况下仅应用于第二个字符串 sed 's@.*/@@'
提前致谢
编辑:在 jq
中发现了一些 split 的潜力
gcloud compute instances list --project $projectname --format=json | jq -r '.[]|(.machineType|split("https://www.googleapis.com/compute/v1/projects/"))'
有多种方法可以做到这一点,但我建议您只使用 awk
,因为您可以使用 ,
然后 /
作为分隔符命令的输出。
您可以根据您分享的命令使用类似这样的东西:
gcloud compute instances list --project $projectname --format=json | jq -r '.[]| .name +","+.machineType' | awk -F',' '{print "/"}' | awk -F'/' '{print "="}'
.
你会得到 $instance-name=$machine-type
希望你觉得这有用。
查看 Cloud SDK (gcloud) 主题格式:
https://cloud.google.com/sdk/gcloud/reference/topic/formats
https://cloud.google.com/sdk/gcloud/reference/topic/projections#scope
gcloud compute instances list \
--project=${PROJECT} \
--format="value(machineType.scope(machineTypes))"
NOTE You asked how to do this with gcloud
and this is the way. @rsalinas' point is good. There's a philosophy that tech should "do one thing well" and gcloud
's formatting|filtering break this. Personally, I prefer to gcloud ... --format=json | jq .
and use jq to process gcloud
output partly because I can use the same theory with kubectl
, doctl
etc. etc. etc. awk
is another magical tool that is generally useful.
运行 gcloud 查询并尝试获取 json 的输出以仅包含实际机器类型而不是完整的 url.
gcloud compute instances list --project $projectname --format=json | jq -r '.[]| .name +","+.machineType'
打印为
$instancename,https://www.googleapis.com/compute/v1/projects/$projectname/zones/europe-west2-a/machineTypes/n1-standard-4
它目前打印出完整的机器类型,想知道是否有人知道缩短 url 以仅将机器类型作为字符串而不是完整的 url.
我也有这个 sed 来清除格式,但是如何在不删除名称的情况下仅应用于第二个字符串 sed 's@.*/@@'
提前致谢
编辑:在 jq
中发现了一些 split 的潜力gcloud compute instances list --project $projectname --format=json | jq -r '.[]|(.machineType|split("https://www.googleapis.com/compute/v1/projects/"))'
有多种方法可以做到这一点,但我建议您只使用 awk
,因为您可以使用 ,
然后 /
作为分隔符命令的输出。
您可以根据您分享的命令使用类似这样的东西:
gcloud compute instances list --project $projectname --format=json | jq -r '.[]| .name +","+.machineType' | awk -F',' '{print "/"}' | awk -F'/' '{print "="}'
.
你会得到 $instance-name=$machine-type
希望你觉得这有用。
查看 Cloud SDK (gcloud) 主题格式:
https://cloud.google.com/sdk/gcloud/reference/topic/formats https://cloud.google.com/sdk/gcloud/reference/topic/projections#scope
gcloud compute instances list \
--project=${PROJECT} \
--format="value(machineType.scope(machineTypes))"
NOTE You asked how to do this with
gcloud
and this is the way. @rsalinas' point is good. There's a philosophy that tech should "do one thing well" andgcloud
's formatting|filtering break this. Personally, I prefer togcloud ... --format=json | jq .
and use jq to processgcloud
output partly because I can use the same theory withkubectl
,doctl
etc. etc. etc.awk
is another magical tool that is generally useful.