linux 批量文件重命名

centos 6.6  mv  rename  都不能滿足需求

所有文件名格式如下:

[[email protected]][1442146016999][<[email protected]>][[email protected]][您已成功預訂【華山裕華賓館】].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”等代表前面正則中的括號裏內容

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章