我有一个包含这些文件的文件夹:
03.jpg
04.jpg
05.jpg
99.jpg
我想将这些文件重命名为
003.jpg
004.jpg
005.jpg
099.jpg
通过使用 bash 脚本。我怎样才能做到这一点?
答案1
尝试这样做:
rename -n 's/\d+/sprintf("%.03d", $&)/e' *jpg
(当测试正常时删除 -n 开关)
还有其他同名的工具可能能够也可能无法做到这一点,所以要小心。
如果运行以下命令 ( GNU
)
$ file "$(readlink -f "$(type -p rename)")"
你有一个像这样的结果
.../rename: Perl script, ASCII text executable
并且不包含:
ELF
那么这似乎是正确的工具 =)
如果不是,则将其设为默认值(通常已经是这种情况)Debian
并衍生如下Ubuntu
:
$ sudo update-alternatives --set rename /path/to/rename
(替换为您的命令/path/to/rename
的路径。perl's rename
如果您没有此命令,请搜索包管理器来安装它或手动做
最后但并非最不重要的一点是,这个工具最初是由 Perl 之父 Larry Wall 编写的。