2015-07-21 3 views
0

я перечисляю некоторые файлы с амазонкой s3 таким образом:Баша, проблема с петлей для

s3cmd ls s3://my-bucket/$(date +%Y%m%d -d "1 day ago")* 

Этой команда возвращает:

2015-07-20 23:51 10680004 s3://my-bucket/20150720-1437436434_ip.log.gz 
2015-07-20 23:55 6180965 s3://my-bucket/20150720-1437436477_ip.log.gz 

Чтобы петли на эти файлы, мой код является:

for file in $(s3cmd ls s3://my-bucket/$(date +%Y%m%d -d "1 day ago")*) 
do echo ${file} 
done 

но результат:

2015-07-20 
23:51 
10680004 
s3://my-bucket/20150720-1437436434_ip.log.gz 
2015-07-20 
23:55 
6180965 
s3://my-bucket/20150720-1437436477_ip.log.gz 

вместо ожидаемого результата:

s3://my-bucket/20150720-1437436434_ip.log.gz 
s3://my-bucket/20150720-1437436477_ip.log.gz 

Как я могу получить ожидаемый результат?

ответ

0

Попробуйте заменить

$(s3cmd ls s3://my-bucket/$(date +%Y%m%d -d "1 day ago")*) 

с

$(s3cmd ls s3://my-bucket/$(date +%Y%m%d -d "1 day ago")* | sed 's/^.* s3/s3/') 

заменить первоначальный вывод, отрезав дату размером части.

 Смежные вопросы

  • Нет связанных вопросов^_^