码迷,mamicode.com
首页 > 系统相关 > 详细

Ubuntu中rename命令和批量重命名

时间:2015-06-30 15:09:47      阅读:560      评论:0      收藏:0      [点我收藏+]

标签:命令   rename   linux   

直接在终端中输入rename+[Enter]可以看到该命令的格式:
早期版本的rename是C语言版本,如今新的Ubuntu中采用的都是perl版本,功能更加强大

Usage:rename [-v] [-n] [-f] perlexpr [filenames]

-v(verbose)打印被成功重命名的文件
-n(no-act)只显示将被重命名的文件,而非实际进行重命名操作
-f(force)覆盖已经存在的文件
perlexprPerl语言格式的正则表达式
files需要被替换的文件(比如*.c、*.h),如果没给出文件名,将从标准输入读

常用的参数是-n,可以先用-n参数对一部小部分图片进行测试,每次执行命令会在terminal中把效果列出来,等确保没问题后去掉-n参数,再对全部数据进行统一处理。

此次应用是为了批量重命名一批图片文件(自己的图片数据,作为caffe训练和测试数据使用)
本来全部都是这种格式:

(1).jpg
(2).jpg
…..

要改为:

test_001.jpg
test_002.jpg
……

用了比较笨的办法:先把括号去掉,再统一改格式(假定图片文件存放在terminal打开的当前目录位置)
1、去掉括号

rename -n ‘s/[()]//g‘ *.jpg

解释:
-n直接打印结果在终端中而非实际执行
引号中是perl的正则表达式,用来匹配和替换,s代表substitution,替换的意思
[()]代表匹配[]中的内容
//两个斜杠之间是空代表替换为空的内容,相当于删除
g代表全部匹配,不加g的话默认只会匹配一个括号

此处的效果类似,是将文件名中的下划线以及数字3,看图中效果应该就明白了:
技术分享

2、继续重命名为想要的格式

rename -n ‘s/^/test_/‘ *.jpg

解释:
s-替换
^-在文件名称开头加字符
test_-将名称前面添加上test_

效果如下:
技术分享

版权声明:本文为博主原创文章,未经博主允许不得转载。

Ubuntu中rename命令和批量重命名

标签:命令   rename   linux   

原文地址:http://blog.csdn.net/songyu0120/article/details/46692493

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!