[英]gcloud command output formatting to use results in another gcloud command
我正在尝试自动删除以 GCP 项目中的特定文本模式结尾的 SSL 证书。
为此,我使用命令:
gcloud compute ssl-certificates list --filter="name~'819$'" --format="(name)"
其中 output 显示的正是这种格式:
NAME
certname1-1602160819
certname2-1602160819
certname3-1602160819
...and so on
问题是,如果我想使用此命令的结果,然后使用它来输入另一个删除每个证书的gcloud
命令,我将第一个变量作为 NAME,这是字段标题,显然不是证书。
这是我的脚本:
#!/bin/bash
for oldcert in $( gcloud compute ssl-certificates list --filter="name~'819$'" --format="(NAME)")
do
gcloud compute ssl-certificates delete $oldcert
done
你知道我如何从我的 output 中获取字段名称 NAME 以便我可以直接在另一个命令中处理每个结果。
谢谢你的宝贵意见
@Hitobat 非常感谢您的评论
我使用了 csv[no-heading] 选项,尽管 tails -n +2 选项也可以完成这项工作
以下命令做得很好:
#!/bin/bash
for oldcert in $( gcloud compute ssl-certificates list --filter="name~'819$'" --format="csv[no-heading](name)")
do
gcloud compute ssl-certificates delete $oldcert --quiet
done
正确使用的格式是--format=value[](name)
。
根据文档:
value
CSV 没有标题和 <TAB> 分隔符而不是 <COMMA>。 用于检索单个资源值。
所以它等同于您使用的--format="csv[no-heading](name)
,但“更正确”(并且更易读)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.