AWS CLI命令

时间:2018-08-31 18:45:14

标签: amazon-web-services amazon-s3 aws-cli

我想获取S3存储桶中具有特定命名模式的所有文件的列表。 例如,如果我有

之类的文件
aaaa2018-05-01
aaaa2018-05-23
aaaa2018-06-30
aaaa2018-06-21

我需要获取第5个月所有文件的列表。输出应如下所示:

aaaa2018-05-01
aaaa2018-05-23

我执行了以下命令,结果为空:

aws s3api list-objects --bucket bucketname --query "Contents[?contains(Key, 'aaaa2018-05-*')]" > s3list05.txt

当我检查s3list05.txt为空时。我也尝试了以下命令和

aws s3 ls s3:bucketname --recursive | grep aaaa2018-05* > s3list05.txt

此命令列出了文件中存在的所有对象。 请让我知道获得所需输出的确切命令。

2 个答案:

答案 0 :(得分:1)

您快到了。试试这个:

aws s3 ls s3://bucketname --recursive | grep aaaa2018-05

aws s3 ls bucketname --recursive | grep aaaa2018-05

答案 1 :(得分:1)

Contains参数不需要通配符:

aws s3api list-objects --bucket bucketname --query "Contents[?contains(Key, 'aaaa2018-05')].[Key]" --output text

这提供了密钥列表。

--output text删除JSON格式。

使用[Key]而不是Key将它们全部放在一行上。