Debian系Linux下用Perl Rename实现三种序列编号批量重命名需求
基于Debian系统的Perl Rename批量重命名命令
以下三条命令针对Debian系列系统(如Ubuntu、Debian)的Perl版rename工具编写,支持文件和文件夹的批量重命名,可替换示例中的*.ext为*处理所有类型,或指定具体扩展名(如*.txt)。
1. 两位数字前缀编号(补前导0)
格式示例:01 - 文档.txt、09 - 图片.png、10 - 资料文件夹
命令:
rename -n 'our $i; BEGIN { $i=1 }; s/^/sprintf("%02d - ", $i++)/e' *.ext
- 说明:
-n是预览模式,确认重命名结果无误后去掉-n执行;$i作为计数器从1开始;sprintf("%02d")实现1-9的数字补前导0;e修饰符让Perl执行替换表达式中的代码逻辑。
2. 两位数字后缀编号(补前导0)
格式示例:文档 - 01.txt、图片 - 09.png、资料文件夹 - 10
命令:
rename -n 'our $i; BEGIN { $i=1 }; s/(.*?)(\..*)?$/$1 - sprintf("%02d", $i++)$2/e' *.ext
- 说明:正则
(.*?)(\..*)?$匹配文件名(含文件夹名)和可选的扩展名;将编号插入到文件名与扩展名之间;同样用-n预览,确认后移除该参数执行。
3. 无补位括号后缀编号
格式示例:文档 (1).txt、图片 (9).png、资料文件夹 (10)
命令:
rename -n 'our $i; BEGIN { $i=1 }; s/(.*?)(\..*)?$/$1 ($i++)$2/e' *.ext
- 说明:逻辑与第二条类似,仅将编号格式替换为无补位的括号包裹形式,直接按自然数序列编号。
额外提示
- 验证Perl版
rename:执行rename --version,输出含Perl相关信息即为正确版本(Debian系列默认预装)。 - 处理子目录:可结合
find命令,比如find . -type f -name "*.ext" -exec rename ... {} +,替换-type f为-type d仅处理文件夹,或去掉-type同时处理文件和文件夹。
内容的提问来源于stack exchange,提问作者advice2020
相关产品推荐
相关产品推荐

