bash - 如何在 Bash 中将文件名中的填充数字置零?

标签 bash rename

使用 Bash 以以下形式重命名文件的最佳方法是什么:

(foo1, foo2, ..., foo1300, ..., fooN)

使用零填充的文件名:

(foo00001, foo00002, ..., foo01300, ..., fooN)

最佳答案

这不是纯粹的 bash,但使用 rename 的 Perl 版本会更容易:

rename 's/\d+/sprintf("%05d",$&)/e' foo*

其中 's/\d+/sprintf("%05d",$&)/e' 是 Perl 替换正则表达式。

  • \d+会匹配第一组数字(至少一个数字)
  • sprintf("%05d",$&) 将匹配的数字传递给 Perl 的 sprintf%05d 将填充到 5位数

关于bash - 如何在 Bash 中将文件名中的填充数字置零?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55754/

相关文章:

linux - 确定 bash 函数的定义位置

linux - ftp 命令中的 Tab 按钮

linux - 用于重命名文件以确保破折号两边都有空格的 Bash 脚本

git:重命名文件并更改文件内容

bash - 无法将添加了 PNG 图像的特定提交推送到 github

linux - 如何抑制在 grep 中被视为选项的模式

version-control - 移动/重命名后,Mercurial 差异不起作用

excel - VBA : Errors with IF loop to rename worksheets (specific errors)

django - 如何从 bash 测试 postgresql 凭据?

linux - 无法使 bash 脚本从 cloud-init 运行