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

linux 批量文件重命名

时间:2015-09-17 15:26:49      阅读:203      评论:0      收藏:0      [点我收藏+]

标签:linux   命名   

centos 6.6  mv  rename  都不能满足需求

所有文件名格式如下:

[yin0502@126.com][1442146016999][<55F566E1.1EB1B6.21669@m15-145.126.com>][callcenter@corp.elong.com][您已成功预订【华山裕华宾馆】].html


需要将“][”更改为“###”并删除首尾的“[”和“]”

1、首先转义   ls | sed ‘s/@/\\@/g‘ | sed ‘s/\[/\\[/g‘ | sed ‘s/</\\</g‘ | sed ‘s/>/\\>/g‘ | sed ‘s/\]/\\]/g‘ | sed ‘s/(/\\(/g‘ | sed ‘s/)/\\)/g‘


2、处理并重命名 sed ‘s/\\\[\(.*\)\\\]\\\[\(.*\)\\\]\\\[\(.*\)\\\]\\\[\(.*\)\\\]\\\[\(.*\)\\\]/mv &.html \1###\2###\3###\4###\5.html/e‘


两部分结合在一起就可以了

注意:1、在第二步之前一定要把文件名所有的特殊字符转义(第一步就是做这个的)

      2、第二步mv中的“&”代表所匹配的字符串  

      3、sed 用法在这里是   sed ‘s/*/mv & */e’

      4、第二步mv中的 “\1 \2 \3”等代表前面正则中的括号里内容

linux 批量文件重命名

标签:linux   命名   

原文地址:http://1992zhong.blog.51cto.com/3963309/1695635

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