CLI AWS S3. Список каталогов без префикса в массиве (и предложение where) - PullRequest
0 голосов
/ 24 июня 2019

Из консольного терминала EC2 я пытаюсь перечислить часть имен каталогов сегмента S3 в массив, исключая префикс «date =», но не могу найти полного решения.

Я уже пробовал следующий код и приближался:

origin="bucket/path/to/my/directory/" 
for path in $(aws s3 ls $origin --profile crossaccount --recursive | awk '{print $4}'); 
do echo "$path"; done 

note : каталог содержит несколько каталогов, таких как / date = YYYYMMDD / и все, что я хочув массив возвращается YYYYMMDD, где YYYYMMDD>> = определенное значение.

Я ожидаю, что вывод будет массивом:

YYYYMMDD, YYYYMMDD, YYYYMMDD

фактический результат:

path/to/my/directory/date=YYYYMMDD/file#1
path/to/my/directory/date=YYYYMMDD/file#2
path/to/my/directory/date=YYYYMMDD/file#3

https://docs.aws.amazon.com/cli/latest/reference/s3/ls.html

1 Ответ

0 голосов
/ 25 июня 2019
path="bucket/path/to/my/directory/date="
for i in $(aws s3 ls $path --profile crossaccount --recursive | awk -F'[=/]' '{if($6>20190000)print $6}');
do python3.6 my_python_program.py $i; done

Я использовал awk. В скобках указаны разделители столбцов = /, а $ 6 - это 6-й столбец после полного имени каталога. Это дало мне дату, необходимую для подачи в мою программу на Python.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...