3 command-line regex perl rename batch-rename
我找到了一个零填充数字文件名的答案,它可以很好地重命名文件名,如下所示:
1.jpg > 00001.jpg
2.jpg > 00002.jpg
.
.
.
9.jpg > 00009.jpg
Run Code Online (Sandbox Code Playgroud)
使用以下命令:
rename 's/\d+/sprintf("%05d", $&)/e' *.jpg
Run Code Online (Sandbox Code Playgroud)
但我的文件名不是数字。它们是一个字母数字序列,例如:a.jpg, b.jpg, c.jpg...... m.jpg。
以与原始问题类似的方式,我想重命名这些,以便它们以正确的顺序显示。我该怎么做呢?
你也可以用零填充字母,你只需要稍微改变我的原始命令:
rename 's/\w+/sprintf("%05s", $&)/e' *.jpg
Run Code Online (Sandbox Code Playgroud)
我们基本上只是说,用零填充的字符串替换第一个“单词”(数字和字母)。它与原版非常相似,只是略有不同。此版本适用于原始问题。
您可以将其扩展为.+匹配项(以零填充所有内容),但是您可能需要在顶部处理扩展。
测试线束:
$ 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
Run Code Online (Sandbox Code Playgroud)