可能重复:
如何从命令行或使用第三方工具批量重命名文件?
我有一组 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 命令以仅重命名符合特定模式或以不同数量增加的文件。