如何使用wild字符从aws s3中选择文件

时间:2015-04-09 22:38:20

标签: amazon-web-services amazon-s3 amazon-emr

我在s3存储桶中有很多文件,我想要复制那些开始日期为2012的文件。以下命令会复制所有文件。

aws s3 cp s3://bp-dev/bp_source_input/ C:\Business_Panorama\nts\data\in --recursive  --include "201502_nts_*.xlsx"

3 个答案:

答案 0 :(得分:20)

您可能希望在包含过滤器之前添加“--exclude”标志。

AWS CLI使用过滤器“--include”将其包含在您现有的搜索中。由于返回了所有文件,因此在包含2015 * .xlsx之前,您需要先排除所有文件。

如果您希望文件的格式为“201502_nts _ *。xlsx”,则可以运行aws s3 cp s3://bp-dev/bp_source_input/ C:\Business_Panorama\nts\data\in --recursive --exclude * --include "201502_nts_*.xlsx"

答案 1 :(得分:5)

我必须在--exclude *通配符周围添加引号,所以它看起来像:

aws s3 cp s3://bp-dev/bp_source_input/ C:\Business_Panorama\nts\data\in --recursive --exclude "*" --include "201502_nts_*.xlsx"

答案 2 :(得分:0)

经过多轮检查并从bsnchan获得帮助后,我可以在aws s3 cli中使用exclude和include命令。请确保正确放置空格。

用于复制特定文件:

aws s3 cp s3://itx-agj-cons-ww-bp-dev/bp_source_input/ C:\Business_Panorama\nts\data\in  --recursive --exclude "*" --include "*%mth_cd%_%source%_all.xlsx"

(注意mth_cd是bat文件中使用的参数)

检查存档文件。

aws s3 ls s3://itx-agj-cons-ww-bp-dev/bp_source_input/ --recursive | FINDSTR  "201502_nts_.*.xlsx"

(注意:windows cli,对于unix它将是grep)

非常感谢。