如何修改AWS S3API list-objects-v2命令显示易读日期与大小
调整AWS S3 API命令以输出易读的日期和大小格式
我来帮你修改这个命令,让它输出你期望的包含日期、格式化大小和文件路径的结果。原来的命令只提取了文件Key,我们需要扩展查询字段并添加格式处理逻辑,这里用jq来做格式化会比sed更灵活可靠:
修改后的完整命令
aws s3api list-objects-v2 --bucket mybucket --prefix Videos --query "Contents[?StorageClass=='STANDARD_IA'].[LastModified, Size, Key]" --output json | jq -r '.[] | [(.[] | if type == "string" then strptime("%Y-%m-%dT%H:%M:%SZ") | strftime("%m/%d/%Y") elif type == "number" then (. / 1024 / 1024 / 1024) | round | tostring + " GiB" else . end)] | @tsv' | column -t
命令各部分说明
- 扩展查询字段:把
--query从只取Key改成[LastModified, Size, Key],这样我们能获取到文件的最后修改时间、大小和路径三个核心信息。 - JSON输出:指定
--output json,方便后续用jq解析处理(比text格式更容易结构化操作)。 - jq格式化逻辑:
- 遍历每个对象的字段数组,对不同类型的字段做针对性处理:
- 对
LastModified(字符串类型的ISO日期):用strptime解析原格式,再用strftime转成mm/dd/yyyy的易读格式。 - 对
Size(数字类型的字节数):转换成GiB单位(除以1024³),取整后拼接单位字符串。 - 对
Key直接保留原内容。
- 对
- 把处理后的字段转成制表符分隔格式(
@tsv),再用column -t做对齐,让输出更整齐美观。
- 遍历每个对象的字段数组,对不同类型的字段做针对性处理:
输出效果
执行后会得到类似你期望的结果:
01/18/2018 1 GiB Videos/test2/test2.mxf 01/18/2017 3 GiB Videos/mov2.mp4
如果你的系统还没安装jq,可以通过包管理器安装(比如Ubuntu用sudo apt install jq,macOS用brew install jq)。
内容的提问来源于stack exchange,提问作者jojo
相关产品推荐
相关产品推荐

