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

如何将AWS CLI获取的S3桶加密结果格式化为可读表格?

如何将S3桶SSE检查输出格式化为表格

方案:修改原有循环命令,生成结构化表格输出

你需要调整原循环的输出逻辑,通过补充表头、统一字段格式、处理异常情况,直接生成可读性强的表格(支持Markdown或终端纯文本格式)。

1. 生成Markdown表格(可直接用于文档/笔记)

将你的循环替换为以下命令(假设${i}来自S3桶列表遍历,比如aws s3 ls的结果):

# 输出Markdown表格表头
echo "| 桶名 | SSE加密算法 |"
echo "|------|-------------|"
# 遍历所有S3桶
for i in $(aws s3 ls | awk '{print $3}'); do
  # 获取SSE算法,同时处理无加密配置的报错和空值
  sse_alg=$(aws s3api get-bucket-encryption --bucket ${i} 2>/dev/null | jq -r '.ServerSideEncryptionConfiguration.Rules[0].ApplyServerSideEncryptionByDefault.SSEAlgorithm // "未启用SSE"')
  # 输出表格行
  echo "| ${i} | ${sse_alg} |"
done

2. 关键修改说明

  • 新增表头定义,明确表格列含义
  • 用2>/dev/null捕获get-bucket-encryption的错误输出(比如桶未配置加密时的报错),避免干扰表格结构
  • 用jq的//运算符设置默认值未启用SSE,统一处理无加密配置的桶
  • 将原有的分散输出整合成标准表格行格式

3. 终端纯文本表格(适合CLI直接阅读)

如果只需要在终端看整齐的表格,可借助column命令实现自动对齐:

(
# 输出分隔符格式的表头
echo "桶名,SSE加密算法"
# 遍历桶列表并输出字段
for i in $(aws s3 ls | awk '{print $3}'); do
  sse_alg=$(aws s3api get-bucket-encryption --bucket ${i} 2>/dev/null | jq -r '.ServerSideEncryptionConfiguration.Rules[0].ApplyServerSideEncryptionByDefault.SSEAlgorithm // "未启用SSE"')
  echo "${i},${sse_alg}"
done
) | column -s, -t

这个命令会以逗号为分隔符,自动对齐所有字段,生成终端友好的纯文本表格。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 17:40:44