2015-04-09 7 views
12

У меня есть много файлов в s3 bucket, и я хочу скопировать файлы, которые имеют дату начала 2012 года. Эта команда ниже копирует весь файл.Как выбрать файл из aws s3 с помощью дикого символа

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

делает эту подстановочную работу? Если нет, то какая ошибка вы получаете? – tedder42

ответ

18

Возможно, вы захотите добавить флаг «-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"

+0

Эй, это сработало для меня. У меня есть еще один вопрос . Сначала я хочу сначала посмотреть, существует ли файл, а затем мне нужно скопировать. Это ошибка throwing. Ss ls s3: // bp-dev/bp_source_input/--recursive --exclude * - включить «201502_nts _ *. Xlsx» – user3858193

+3

Флаги -exclude и -include работают только для s3 (например, cp, mv, rm). 'ls' - операция каталога. Вы можете запустить команду ls и передать ее в grep: 'aws s3 ls s3: // bp-dev/bp_source_input/--recursive | grep 201502_nts _ *. xlsx' – bsnchan

+0

Будет ли это работать и в cli? Я пытался в cli показать grep не распознан. – user3858193

0

После выполнения многочисленных раундов проверки и получать помощь от 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 это параметр, используемый в летучей мыши файл)

Для проверки файла существования.

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

(Примечание: окна кли, для UNIX это будет Grep)

Большое спасибо.

3

мне пришлось добавить кавычки вокруг --exclude * шаблона, так что бы выглядеть следующим образом:

aws s3 cp s3://bp-dev/bp_source_input/ C:\Business_Panorama\nts\data\in --recursive --exclude "*" --include "201502_nts_*.xlsx" 
Смежные вопросы