rename批量命名命令


  參考:http://www.ttlsa.com/linux-command/linux-rename-command-batch-rename/

  Linux下rename命令有兩種版本一種是C語言版本,一種是perl語言版本

  查看版本

man renmae

   第一行出現以下內容的是perl版本

 User Contributed Perl Documentation

   第一行出現其他的或者則是C語言版本

User Commands 

   PS:CentOS默認是C語言版本,Ubuntu是perl版本

  C語言版本命令格式

rename from to file

   說明

from 修改什么名字
to 修改成什么名字
file 文件名

   舉例說明,把以下文件修改成類似html的格式

1.htm
2.htm
3.htm
4.htm
5.htm
6.htm
7.htm
8.htm
9.htm

   命令如下,把htm修改成html 使用*.htm批量匹配文件

rename htm html *.htm

   現在總結一下rename C語言版本所能實現的功能: 批量修改文件名,結果是每個文件會被用相同的一個字符串替換掉!也就是說,無法實現諸如循環 然后按編號重命名

  perl版rename格式

rename [ -h|-m|-V ] [ -v ] [ -n ] [ -f ] [ -e|-E perlexpr]*|perlexpr [ files ]

   注意,perl版本的rename只有兩個參數,第一個參數為perl正則表達式,第二個參數為所要處理的文件

  man rename幫助實例

  1)有一批文件已.bak結尾,把.bak刪除

 rename 's/\.bak$//' *

   這個命令和sed里面的正則是一樣的

  \. 轉義

       bak$ 以bak結尾

  2)把所有文件名內含有大小字母的,修改為小寫字母

rename 'y/A-Z/a-z/' *

   其他列子

  在文件頭部統一加hello

rename 's/^/hello/' *

   把htm換成html

rename 's/htm/html/' *

   在尾部加.zip

rename 's/$/.zip/' *

   規則化數字編號名,比如 1.jpg, 2.jpg ..... 100.jpg , 現在要使文件名全部三位即 1.jpg .... 001.jpg

rename 's/^/00/' [0-9].jpg #把1-9前面加上00
rename 's/^/0/' [0-9][0-9].jpg #把10-99前面加上0

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM