1.简介:
通常在机器视觉的学习过程中,需要批量处理一些图片,通常会涉及到批量重命名的问题,可以利用rename命令快速实现图片的批量重命名
2.rename命令格式:
1 rename [-v] [-n] [-f] perlexpr [filenames] 2 3 -v(verbose)打印被成功重命名的文件 4 -n(no-act)只显示将被重命名的文件,而非实际进行重命名操作 5 -f(force)覆盖已经存在的文件 6 perlexprPerl语言格式的正则表达式 7 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 参数去掉,实际执行【命令及效果如图】: