批次改檔名

大量改檔名

在 ubuntu 底下,有時會遇到要大量改檔名,如英文大寫改小寫,工作量很大,不可能一個個手動去改。

若能用正規表示法(regular expression 簡稱:regx)來改檔名,會是最精準,又快速的方法。

但是改檔名的指令 mv 和 rename 並不支援正規表示法的語法

所以就得透過以下的方法,才能用正規表示法來快速、大量的改檔名

將當前目錄底下的 foo 全改名為 bar

改檔名前的預覽指令

find . -type f -print0 | xargs -0 rename -n ‘s/foo/bar/g’

實際改檔名的指令

find . -type f -print0 | xargs -0 rename ‘s/foo/bar/g’

範例:

將當前目錄下的副檔名 .Wma 全改成小寫的 .wma
因為 . 是特殊符號,它有特殊功能,所以我們要在 點的前面加個 \ 倒斜線,來迴避掉它原本的特殊功能
所以指令寫起來會是這樣

find . -type f -print0 | xargs -0 rename -n ‘s/\.Wma/\.wma/g’

參考資料

補充: (以下內容我還沒測過)

rename 此指令也有支援正規表示法

用法:

rename ‘y/a-z/A-Z/’ *

範例: 將 .JPG 檔名全改成小寫 .jpg

rename ‘s/\.JPG$/\.jpg/’ *.JPG

本篇發表於 ubuntu。將永久鏈結加入書籤。

發表迴響

你的電子郵件位址並不會被公開。 必要欄位標記為 *