我有在s3路径下存在的文件,如下所示: s3:// ttttt / 2018/11/01/02->(tttt = s3 bucket,2018 = year,11 = moth,01 = day,hour = 02)
我一直都有一个新文件,该文件插入s3中,如下所示:
s3://tttt/2018/10/01/01/ls.s3.4cede5e7d25c.2018-10-01T01.00.tag_lre.txt.gz
s3://tttt/2018/10/01/01/ls.s3.4cede5e7d25c.2018-10-01T01.00.tag_lre.txt.gz
s3://tttt/2018/10/01/02/ls.s3.4cede5e7d25c.2018-10-01T02.00.tag_lre.txt.gz
我想通过Bash脚本进行接载: 1.最长年份 2.最大月份 3.最多一天 4.最大小时数
我构建的脚本看起来像这样(但是效果不好):
#!/bin/bash
result=`aws s3 ls "s3://tttt/2018/" | awk '{print $2}' |tail -n 1`
result1=`aws s3 ls "s3://tttt/2018/${result:0:2}/" | awk '{print $NF-1}' |tail -n 1`
result2=2018/${result:0:2}/${result1:0:2}/
有什么想法怎么写?
答案 0 :(得分:0)
无法显示aws s3 ls "s3://tttt/2018/"|tail -1
的输出。
与
result="s3://tttt/2018/10/01/01/ls.s3.4cede5e7d25c.2018-10-01T01.00.tag_lre.txt.gz"
你可以做
IFS=/ read -r s3 empty bucket year month day hour file <<< "${result}"
结果:
set | egrep "bucket=|year=|month=|day=|hour="
bucket=tttt
day=01
hour=01
month=10
year=2018