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

gcloud查询GCP文件夹时如何分别输出ID与displayName并处理空格

你当前的脚本会把gcloud返回的所有结果按任意空白符(空格、换行、制表符)拆分,循环时带空格的文件夹显示名会被拆分为多个独立项,无法正确匹配ID和显示名的对应关系,两个问题的解决方案如下:

1 直接拆分ID和显示名(原生方案,无需编解码)

利用gcloud输出多字段默认以制表符分隔的特性,逐行读取结果并拆分两个字段即可,自带空格兼容:

# 获取组织ID
ORG=$(gcloud organizations list --format="value(name)")

# 逐行读取文件夹列表,按制表符拆分ID和显示名
while IFS=$'\t' read -r FOLDER_ID FOLDER_DISPLAY_NAME
do
  # 可根据需求单独使用两个变量
  echo "文件夹ID: ${FOLDER_ID}"
  echo "文件夹显示名: ${FOLDER_DISPLAY_NAME}"
  echo "--------------------------"
done < <(gcloud resource-manager folders list \
  --organization="${ORG}" \
  --format="value(ID,displayName)")

2 基于base64编解码的实现方案

如果你需要通过base64处理特殊字符场景,可以直接用gcloud内置的base64编码能力输出字段,循环时解码即可:

# 获取组织ID
ORG=$(gcloud organizations list --format="value(name)")

# 输出时直接将displayName编码为base64格式
while read -r FOLDER_ID ENCODED_DISPLAY_NAME
do
  # 解码得到原始显示名
  FOLDER_DISPLAY_NAME=$(base64 -d <<< "${ENCODED_DISPLAY_NAME}")
  echo "文件夹ID: ${FOLDER_ID}"
  echo "文件夹显示名: ${FOLDER_DISPLAY_NAME}"
  echo "--------------------------"
done < <(gcloud resource-manager folders list \
  --organization="${ORG}" \
  --format="value(ID,displayName.encode(base64))")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 03:27:07