顺序重命名文件

顺序重命名文件

我找到了答案零填充数字文件名这对于重命名文件名很有效,如下所示:

1.jpg > 00001.jpg
2.jpg > 00002.jpg
.
.
.
9.jpg > 00009.jpg

使用以下命令:

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

但我的文件名不是数字。它们是字母数字序列,例如:a.jpg, b.jpg, c.jpg...... m.jpg

与原始问题类似,我想重命名它们,以便它们按正确的顺序显示。我该怎么做?

答案1

您也可以用零填充字母,只需稍微改变我的原始命令即可:

rename 's/\w+/sprintf("%05s", $&)/e' *.jpg

我们基本上只是说,用零填充的字符串替换第一个“单词”(数字和字母)。它与原始版本非常相似,只是略有不同。此版本适用于原始问题。

您可以将其扩展为.+匹配项(零填充)一切),但你可能需要处理顶部的扩展。


测试工具:

$ mkdir test; cd test; touch {a..d}.jpg 1.jpg
$ rename 's/\w+/sprintf("%05s", $&)/e' *.jpg
$ ls
00001.jpg  0000a.jpg  0000b.jpg  0000c.jpg  0000d.jpg

相关内容