批处理文件重命名按日期排序

时间:2012-11-16 05:08:09

标签: shell

我有上传文件的文件夹,有1,000-20,000种不同类型的文件(pdf,jpg,wmv ...等),文件名和长度不同,名称中有空格等。

我正在尝试制作一个脚本来定期重命名它们,但我希望它们按“最早的日期优先”排序,新名称的格式为YYYT000001.xxxx ... YYYY036242.xxxx(其中YYYY是固定文本“Jan”或Dec“(我将在脚本中手动输入),xxxx是原始文件扩展名。)

我尝试使用输入for i in $(ls -tr),因为它将按最早的日期排序,并尝试使用basename $i等替换文件名。

我在网上搜索了但是我的厚头无法找到一个有效的脚本。

1 个答案:

答案 0 :(得分:0)

使用他们在this questionthis blog post中所说的内容,您只需按以下方式移动文件:

#!/bin/bash
prefix="YYY"
i=0
for file in $(ls -tr)
do
    filename=$(basename "$file")
    extension="${filename##*.}"
    paddedIndex=$(printf "%06d" $i)
    mv $file ${prefix}${paddedIndex}.${extension}
    i=$(($i + 1))
done