我找到了答案零填充数字文件名这对于重命名文件名很有效,如下所示:
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