首頁 > 系統教程 > Linux > 主體

用一個實例講解rename指令中正規表示式的使用

王林
發布: 2024-04-07 08:04:01
轉載
862 人瀏覽過

用一個實例講解rename指令中正規表示式的使用

rename指令用字串取代的方式批次改變檔名。今天以一個例子來具體寫一下自己遇到的問題並且解決的例子。希望對大家有幫助。

格式如下:

#rename 原始字串  目標字串  檔案(列表)
  1. 原始字串:將檔案名稱需要替換的字串;
  2. 目標字串:將檔案名稱中所包含的原始字元替換成目標字串;
  3. 檔案:指定要改變檔案名稱的檔案清單。
舉例:
將main1.c重新命名為main.c
#
rename  main1.c  main.c  main1.c
登入後複製
rename支援通配符
#
?  可替代单个字符
*  可替代多个字符
[charset]  可替代charset集中的任意单个字符
登入後複製

舉例:

資料夾中有這些檔案foo1, ..., foo9, foo10, ..., foo278

rename foo foo0 foo?
登入後複製

該指令會把foo1到foo9的檔案重新命名為foo01到foo09,重新命名的文件只是有4個字元長度名稱的文件,檔案名稱中的foo被替換為foo0。

rename支援正規表示式

#現在以一個具體的例子來講解該指令中正規表示式的使用:

今天下午我手中的資料(圖)命名是(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中文網其他相關文章!

來源:linuxprobe.com
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板