在文件名的特定位置添加零

在文件名的特定位置添加零

我有一个包含多个文件的目录。文件名如下;

0102920.05o
0203920.05o
0304920.05o
....

我需要在所有文件的前 4 位数字后添加“0”,例如;

01020920.05o
02030920.05o
03040920.05o

有没有办法用 bash 或 perl 来做到这一点?

答案1

使用此命令

rename -n -v 's/(.{4})(.*)/${1}0${2}/' *

看看结果是否是您想要的,删除-n-v选择。

解释:

执行这个简单的命令:

rename 's/pattern/result/' filename(s)

模式可以是正则表达式。因此,我们可以获取文本的不同部分(即文件名)。如果您不明白,请谷歌搜索正则表达式。

因此,在我建议的命令中,按照模式,将文件名分为两部分:第一部分是前四个字符,第二部分是其余部分。

现在在结果部分,我们粘贴第一部分,添加一个 0,然后添加第二部分。就这么简单。

如果您可以制作正确的正则表达式,您可以轻松地进行批量重命名。

答案2

类似这样的操作可以在 bash 中对当前目录中的所有文件执行此操作

for filename in *;do
    mv "$filename" "${filename:0:4}0${filename:5:11}"
done

相关内容