我有一个 s3 存储桶,其中包含这样命名的文件:
example_test_20200612010000
example_test_20200612020000
example_test_20200612020000
example_control_20200612010000
example_control_20200612020000
example_control_20200612020000
这样的文件每隔几分钟就会进入此 s3 存储桶 - 我需要确定哪些测试文件是新的(我尚未处理)。我的逻辑是做这样的事情:
aws s3 ls [s3 bucket name] --profile [profile name] | grep "test" | awk '$4 > 'example_test_20200612010000'
文件命名始终一致,因此只需检查此存储桶中的所有测试文件,其中文件名按字典顺序大于我处理的最新文件(从而比较最后的时间戳部分)。
答案1
尝试
| awk -v ref=example_test_20200612010000 '/test/ && $4 > ref { print $4}'
请注意,您可以按日期列出对象(全部在一行中)
aws s3api list-object --bucket ...
--query 'Contents[?LastModified>`2020-05-01`].{Key: Key,Size: Size}'
2020-05-01
当然,替换 LastModified> 。
处理 JSON 结果使用
| jq -r '.[].Key'