我需要重命名一组编号文件,但修改数字 + 5。怎么办?

我需要重命名一组编号文件,但修改数字 + 5。怎么办?

可能重复:
如何从命令行或使用第三方工具批量重命名文件?

我有一组 47 个 .mp3 文件,用于多媒体项目,这些文件的名称分别为 01.mp3 - 47.mp3。每个文件的名称都应该是该数字 + 5,因此 02.mp3 实际上应该是 07.mp3。重命名的文件可以有某种前缀 + 数字,或者可以写入新文件夹以免干扰现有文件。

我可以使用 Ubnutu 和 Windows。有人可以建议一种方法来解决这个问题吗?

答案1

您可以在 awk 中使用如下脚本执行此操作:

#!/usr/bin/awk -f
BEGIN {
    regex = "[0-9]+"
    print "mkdir new"
}
{
    if (match($8,regex)) {
        before = substr($8,1,RSTART-1);
        pattern = substr($8,RSTART,RLENGTH);
        newnumber = pattern + 5
        after = substr($8,RSTART+RLENGTH);
        printf("mv %s new/%s%.2d%s\n", $8, before, newnumber, after);
    }
}

假设您有一个包含以下文件的文件夹:

foo01
foo02
foo03
foo04
foo05
bar10.txt
bar11.txt
bar12.txt
bar13.txt
rename.awk

如果你执行该命令,ls -l|./rename.awk|sh则你将得到:

new/foo06
new/foo07
new/foo08
new/foo09
new/foo10
new/bar15.txt
new/bar16.txt
new/bar17.txt
new/bar18.txt
rename.awk

当然,您可以修改脚本或 shell 命令以仅重命名符合特定模式或以不同数量增加的文件。

相关内容