按范围自动按日期移动:Shell脚本

时间:2014-09-03 06:54:22

标签: shell date ubuntu

我有一个包含许多文件的文件夹,如下所示:   00606E00C3B3()_ 0_20140721070542_8770.jpg

我手动做的是:

  mkdir 140601
  mv *20140601*.jpg 140601/

对于每一天我都需要一个脚本自动执行此操作,并且我想按照以下命令启动它:

 sh sort.sh datestart dateend

示例:

 sh sort.sh 140601 140630

我该怎么做?求助。

1 个答案:

答案 0 :(得分:1)

for filename in *_201*.jpg; do
    part=1${filename#*201} # YYMMDD and everything after
    yymmdd=${part:0:6}
    mkdir -p $yymmdd
    mv "$filename" $yymmdd/

是的,这将在2019年之后失败,并且如果您在文件名中将“201”作为年份之前的数字部分。这些错误留作练习。 :)