我有一个包含多个文件的目录。文件名如下;
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