You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将标签结构不一致的多个GCP项目标签整理到CSV文档

导出GCP多项目标签到规范CSV的解决方案

步骤1:获取包含项目信息与标签的完整JSON数据

首先导出所有有权访问的项目的基础信息(项目ID、名称)及标签,确保后续能关联项目与标签:

gcloud projects list --format="json(projectId, name, labels)"

步骤2:提取所有唯一的标签键作为CSV表头

通过jq收集所有项目的标签键,去重后整理成CSV格式的表头:

# 提取并去重所有标签键,保存到临时文件
gcloud projects list --format="json(labels)" | jq -r '.[].labels | keys[]' | sort | uniq > tag_keys.txt

# 将标签键拼接为逗号分隔的表头字符串
HEADERS=$(paste -sd "," tag_keys.txt)

步骤3:生成统一列名的规范CSV

结合jq的数组处理能力,将每个项目的标签值对应到表头列,无对应标签的列填充为空字符串:

# 先写入CSV表头(包含项目ID、名称及所有标签键)
echo "projectId,name,$HEADERS" > projects_tags.csv

# 处理每个项目数据,填充对应标签值并追加到CSV
gcloud projects list --format="json(projectId, name, labels)" | jq -r '.[] | [.projectId, .name] + [$HEADERS | split(",")[] as $key | .labels[$key] // ""] | @csv' >> projects_tags.csv

关键说明

  • 用projectId作为项目唯一标识,比名称更可靠,避免重名项目混淆。
  • // ""是jq的空值处理语法,当标签键不存在时自动填充空字符串,保证CSV格式规范。
  • 若不需要临时文件tag_keys.txt,可以合并命令,直接通过管道传递标签键:
HEADERS=$(gcloud projects list --format="json(labels)" | jq -r '.[].labels | keys[]' | sort | uniq | paste -sd ",")
echo "projectId,name,$HEADERS" > projects_tags.csv
gcloud projects list --format="json(projectId, name, labels)" | jq -r '.[] | [.projectId, .name] + [$HEADERS | split(",")[] as $key | .labels[$key] // ""] | @csv' >> projects_tags.csv

内容的提问来源于stack exchange,提问作者JuanToroMarty

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.08 21:53:11