1.简介:
通常在机器视觉的学习过程中,需要批量处理一些图片,通常会涉及到批量重命名的问题,可以利用rename命令快速实现图片的批量重命名
2.rename命令格式:
rename [-v] [-n] [-f] perlexpr [filenames] -v(verbose)打印被成功重命名的文件
-n(no-act)只显示将被重命名的文件,而非实际进行重命名操作
-f(force)覆盖已经存在的文件
perlexprPerl语言格式的正则表达式
files需要被替换的文件(比如*.c、*.h、*jpg),如果没给出文件名,将从标准输入读
注意:通常我们先使用 -n 参数对做测试,修改的结果会在终端显示,看是否重命名为你想要的效果,若达到效果,则把 -n 参数去掉,进行实际操作
3.实例讲解:
【想要把 test(1).jpg 形式改为:test_test1.jpg】
(1)去掉括号:
rename -n 's/[()]//g' *.jpg 解释:
-n直接打印结果在终端中而非实际执行
引号中是perl的正则表达式,用来匹配和替换,s代表substitution,替换的意思
[()]代表匹配[]中的内容
//两个斜杠之间是空代表替换为空的内容,相当于删除
g代表全部匹配,不加g的话默认只会匹配一个括号
效果:
可以看到是括号已经去掉了,达到了自己想要的效果,接下来把 -n 去掉,进行实际操作:
rename 's/[()]//g' *.jpg
这时候可以看到指定目录下的图片名已经更改为了:
2.接下继续修改【改为test_test1.jpg形式】:
rename -n 's/^/test_/' *.jpg 解释:
s-替换
^-在文件名称开头加字符
test_-将名称前面添加上test_
效果:
达到效果,将 -n 参数去掉,实际执行【命令及效果如图】: