我有一组文件:
foo_1_somestring.txt
foo_2_adifferentstring.txt
....
foo_124_anotherstring.txt
我想将它们批量重命名为:
foo_001_somestring.txt
foo_002_adifferentstring.txt
....
foo_124_anotherstring.txt
我如何在 Windows 10 或 Linux 中执行此操作?
ETA:这个问题是关于如何批量重命名一组文件,使它们遵循允许文件按数字排序的命名约定,即用适当数量的零填充编号文件,以便它们可以按名称排序,而文件 2 不会出现在文件 125 之前。
我找不到另一篇帖子来解决这个问题,文件名中有一部分保持不变(开头的“foo_”),还有一部分变化
答案1
在 Linux 上,假设您想要 3 位数字,并且该数字始终位于 2 个下划线之间:
sudo apt install rename
rename 's/_([0-9]+)_/sprintf("_%03d_",$1)/e' foo*
该rename
程序可能已安装。这是一个简单的程序,它接受 Perl 表达式并使用它来重命名给定的文件,或foo*
在本例中。此处的 Perl 表达式捕获括号之间的数字并使用sprintf
将其转换为 3 位数字。使用%04d
上面的 , 表示 4 位数字。
这也可以在使用 WSL 的 Windows 10 上运行。