我有大约 18k 个文件,其命名方式如下:
0001_6548
0002_7674
...
14767_4536
我需要在第一部分仅包含 4 位数字的文件名中添加前导零,以便它们自然地以正确的方式排序。
答案1
rename
对于( prename
) 来说,从该目录可以轻松完成以下工作:
rename -n 's/^\d{4}_\d{4}$/0$&/' [[:digit:]]*
放弃-n
实际行动。
^\d{4}_\d{4}$
匹配文件名为 4 位数字,后跟_
,然后再是 4 位数字这些文件被重命名为
0
前缀,0$&
例子:
% ls [[:digit:]]*
0001_6548 0002_7674 14767_4536
% rename -n 's/^\d{4}_\d{4}$/0$&/' [[:digit:]]*
0001_6548 renamed as 00001_6548
0002_7674 renamed as 00002_7674
% rename 's/^\d{4}_\d{4}$/0$&/' [[:digit:]]*
% ls [[:digit:]]*
00001_6548 00002_7674 14767_4536
答案2
sudo apt-get install krename
这是一款出色的基于 GUI 的批量文件重命名应用程序。试试吧
如何使用 KRename 在 Ubuntu 中批量重命名文件
这篇文章解释了如何使用 krename(我不是作者)
答案3
Python解决方案:
#!/usr/bin/env python
from os import listdir,path,rename
from sys import argv
import re
for i in listdir("."):
if i == argv[0] or not path.isfile(i):
continue
if re.match('\d{4}_\d{4}',i):
rename(i,'0'+i)
测试:
$ ls
0001_6548 0002_7674 14767_4536 append_zero.py*
$ ./append_zero.py
$ ls
00001_6548 00002_7674 14767_4536 append_zero.py*