rename指令用字串取代的方式批次改變檔名。今天以一個例子來具體寫一下自己遇到的問題並且解決的例子。希望對大家有幫助。
格式如下:
rename main1.c main.c main1.c
? 可替代单个字符 * 可替代多个字符 [charset] 可替代charset集中的任意单个字符
舉例:
資料夾中有這些檔案foo1, ..., foo9, foo10, ..., foo278
rename foo foo0 foo?
該指令會把foo1到foo9的檔案重新命名為foo01到foo09,重新命名的文件只是有4個字元長度名稱的文件,檔案名稱中的foo被替換為foo0。
#現在以一個具體的例子來講解該指令中正規表示式的使用:
今天下午我手中的資料(圖)命名是(1).jpg、(2).jpg......到(16720).jpg。
現在我想要把檔名改為00001.png、00002.png、.......16720.png
第一步:將後綴名.jpg改成.png
rename 's/\.jpg$/\.png/' *.jpg
第二步:講左括號"("去掉:
rename 's/^\(//' *.png
第三步,將右括號「)」去掉:
rename 's/\)//' *.png
第四步:將文件名字改成五位數,不足五位數的前面補0即可。建立腳本a.sh完成,腳本內容如下:
#!/bin/bash for i in {1..9} do mv $i.png 0000$i.png done for i in {10..99} do mv $i.png 000$i.png done for i in {100..999} do mv $i.png 00$i.png done for i in {1000..9999} do mv $i.png 0$i.png done
然後將該腳本檔案和需要更改檔案名稱的資料夾下,我們直接執行該腳本即可。
如果此時看到「權限不夠」那就加上執行權限即可。
chmod 755 a.sh
至此,我們已經完成了任務,如果有不理解的地方,請給我留言。若轉載,請標示出處:http://www.cnblogs.com/wongyi/
以上是用一個實例講解rename指令中正規表示式的使用的詳細內容。更多資訊請關注PHP中文網其他相關文章!