如何使用通配符 select 来自 aws s3 的文件

How to select a file from aws s3 by using wild character

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

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

您可能希望在包含过滤器之前添加“--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"

经过多轮检查并获得 bsnchan 的帮助后,我能够在 aws s3 cli 中使用排除和包含命令。请确保您输入的空格正确。

对于复制特定文件:

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)

非常感谢。

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

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