版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。
rename 是 linux 系统中的一个小工具(支持正则),主要用于更改文件名,批量改更见效率!注意结合文件名的通配符使用(?, *),才能更大发挥其效用!
预备知识
正则表达式符号 | 含义 |
---|---|
^ |
匹配输入的开始位置 |
$ |
匹配输入的结尾 |
. |
匹配除换行符外的任意字符 |
+ |
匹配输入字符一次或多次 例如,“c+“可以匹配"cd"或"cads”,但不匹配末尾字符"c” |
a-z |
表示某个范围内的字符,例如,"a-z"匹配"a"与"z"之间的任何一个小写字母字符。 |
查找替换文件名子串
将每个文件名中第一个 ‘a
’ 换成 ‘4
’:
rename 's/a/4/' *
将每个文件名中所有 ‘a
’ 换成 ‘4
’:
rename 's/a/4/g' * # 注意 g 的含义(所有,不止第一个)
去除某种文件后缀名(.cpp
为例):
rename 's/\.cpp$//' * # ’\‘ 为转移字符,'\.' 转义为 .
将文件名中大写字母转小写:
rename 'y/A-Z/a-z/' *
将所有文件统一加上后缀(.txt
为例):
rename 's/$/.txt/' *
将所有文件后三个字符换成 abc
:
rename 's/...$/abc/' * # 几个字符就用几个点
将所有文件统一加上前缀(abc
为例):
rename 's/^/abc/' *
统一删除某前缀(abc
为例):
rename 's/^abc//' *
统一删除某后缀(abc
为例):
rename 's/abc$//' *
将所有文件前三个字符换成 abc
:
rename 's/^.../abc/' * # 几个字符就用几个点
将以字符 ‘c
’ 开头且第四个字符为 ‘w
’ 的文件名中的 ‘aa
’ 换成 ‘bb
’:
rename 's/aa/bb/' c??w*
几个常用参数(必须紧跟在 rename 后)
-v 打印成功改名后的文件名
-n(常用) 打印即将改名的文件名,但不执行操作(预览)
-f 强制覆盖已有文件