Linux 大量修改檔名 rename 進階的格式處理

rename 是一隻 Perl script,在做檔案的大量重新命名很方便,支援 regex,詳細介紹可見此篇:Linux > 大量修改檔名的工具 - rename

不過此次遇到的問題,是輸出的檔名想要做 sprintf() 的格式設定(例如:補0:1、2、3 改成 01、02、03),要怎麼做呢?

Linux 大量修改檔名 rename 進階的格式處理

先做幾個檔案測試:

  1. touch 2011-1-1.jpg
  2. touch 2011-2-2.jpg
  3. touch 2011-11-2.jpg
  4. rename -n 's/(\d+)-(\d+)-(\d+)/$1_$2_$3/' *.jpg # 把 2011-1-1, 2011-2-2 改成 2011_1_1, 2011_2_2,測試看看 regex 是否正常,-n 先測試看結果,不要修改檔名

再來就是主要想做的,想要將

  1. 2011-1-1.jpg → 2011-01-01.jpg
  2. 2011-2-2.jpg → 2011-02-02.jpg
  3. 2011-11-2.jpg → 2011-11-02.jpg

在 rename 使用 sprintf 的寫法:

作者: Tsung

對新奇的事物都很有興趣, 喜歡簡單的東西, 過簡單的生活.

發表迴響

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料