簡體   English   中英

gcloud 命令 output 格式化以在另一個 gcloud 命令中使用結果

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM