2015-07-21 92 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")* | sed 's/^.* s3/s3/') 

替换

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

替换通过切断日期的大小部分的初始输出。