重命名多个文件,删除最后一个字符并重新编号

重命名多个文件,删除最后一个字符并重新编号

我有一个照片目录,其中有数百个文件,其命名格式如下:

2013-08-02 19.21.27.jpg

我希望保留前 10 个字符(日期)并附加“-001”等,每个日期都是连续的。

输出将是:

2013-08-02-001.jpg
2013-08-02-002.jpg
2013-08-03-001.jpg

ETC。

然后我计划使用以下方法调整 jpg 的大小:

for file in *.jpg; do convert $file -resize 900x900\> 900x900-$file; done

答案1

最简单的方法可能是使用 Perl 的哈希值:

perl -e '
    for (<*.jpg>){
        $date = substr($_,0,10);
        $counts{$date}++;
        rename $_ => "$date-".sprintf "%03d",$counts{$date}.".jpg";
    }
'

但请注意,此代码未经测试。首先在虚拟文件上尝试一下。

相关内容