shell-最近7天目录
1 #采用将最近7天的日期放入到数组中,遍历整个目录,将这7天的目录连接成一个字符串paths。 2 #注意: 1.日期目录里面的文件只是做了简单的以part开头的匹配。 3 # 2.path路径是日期的上一层,以/结尾 4 # 3.将以下部分放到原来脚本的最上面 5 # 4.paths是拼接的字符串结果,${paths%?}是去除末尾","的结果 6 7 #原始数据文件路径(日期目录的上一层) 8 path=/home/xwtech/temp/ 9 10 # 1.将最近7天的日期放入到数组 11 i=0 12 while [[ i -lt 7 ]] ; do 13 datearray[i]=`date -d "-${i} day" +"%Y%m%d"` 14 let i++ 15 done 16 17 cd $path 18 19 #判断目录结构(由8为数字组成,后面会判断该目录是否在日期数组中,so 没有做完全的日期判定),拼接字符串 20 for dirname in `ls | grep -E "([0-9]{8})"` 21 do 22 if [[ "${datearray[@]}" =~ ${dirname} ]] 23 then 24 # 匹配以part开头的文件 25 for file in `ls ${dirname} | grep -E "part-*?"` 26 do 27 paths=${paths}${dirname}"/"${file}"," 28 done 29 fi 30 done 31 # ${paths%?} 就是去除最后一个","的结果 32 echo ${paths%?}