零填充重命名,例如图像(2).jpg - >图像(002).jpg

Eri*_*tis 2 bash perl

我需要重命名所有图像,如标题在所有子文件夹中解释的那样.我正在考虑用正则表达式提取括号内的数字然后重命名它.搜索周围我看到有类似的工具rename,mmv但我无法让它们重命名jpgs.

我会感谢任何解决我的问题的建议.

BTW:适用于Windows,我有cygwin bash和perl.

编辑:
在尝试所有答案后的结论.

  1. Cygwin rename并不好,我可以上班不接受正则表达式,但绝对是个不错的选择,例如运行Linux VM并安装Win SharedFolder.
  2. 你可以建立一个更好rename的Cygwin的与工具这个shell脚本使用sed.
  3. Windows等效的pwd简单cd.
  4. Hugmeir使用Perl 5.13+发布了一个很有前途的解决方案,这些解决方案是开发版,但是当你可能正在阅读它时,可能会保持稳定.
  5. pad_left子可能不是printf语法的更好替代方法,但它可以工作.

KAR*_*ván 7

rename命令可以这样做:

rename 's/\d+/sprintf("%03d",$&)/e' *.jpg
Run Code Online (Sandbox Code Playgroud)

使用子目录:

find . -type f -name \*.jpg -print0|xargs -0 rename 's/\d+/sprintf("%03d",$&)/e'
Run Code Online (Sandbox Code Playgroud)