[英]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.