把專輯數字前綴拿掉

需求

* 01 GFRIEND - Intro (Belief).mp3
* 02 GFRIEND - Love Whisper.mp3
* ...
* 10 GFRIEND - Summer Rain (Instrumental).mp3


* GFRIEND - Intro (Belief).mp3
* GFRIEND - Love Whisper.mp3
* ...
* GFRIEND - Summer Rain (Instrumental).mp3

實作

for f in *.mp3; do mv "$f" "$(echo "$f" | sed 's/^[0-9][0-9] //')"; done
  • for f in *.mp3:對目前資料夾下所有 .mp3 檔案進行迴圈(f 就是每個檔名)。
  • do ... done:這是 bash 的迴圈語法,do 裡面會對每個檔案執行一次命令。
  • mv 舊檔名 新檔名:把「舊檔名」改成「新檔名」。
  • echo "$f":把 $f 印出來,例如某次 $f"01 GFRIEND – Love Whisper.mp3"
  • | 是管線,代表把 echo "$f" 的輸出交給 sed 處理。
  • sed 是文字處理工具。
  • 's/^[0-9][0-9] //' 的意思是把 01 02 替代為「空白」:
    • 舊字串//新字串:把「舊字串」取代為「新字串」。
    • s/:substitue,替代。
    • ^:字串開頭。
    • [0-9][0-9] :任意兩個數字 + 一個空白

最後會跑的程式是像這樣:

mv 01 GFRIEND - Intro (Belief).mp3 GFRIEND - Intro (Belief).mp3
mv 02 GFRIEND - Love Whisper.mp3 GFRIEND - Love Whisper.mp3
mv 03 GFRIEND - Summer Rain.mp3 GFRIEND - Summer Rain.mp3
mv 04 GFRIEND - Rainbow.mp3 GFRIEND - Rainbow.mp3
mv 05 GFRIEND - Ave Maria.mp3 GFRIEND - Ave Maria.mp3
mv 06 GFRIEND - One-Half.mp3 GFRIEND - One-Half.mp3
mv 07 GFRIEND - Life Is a Party.mp3 GFRIEND - Life Is a Party.mp3
mv 08 GFRIEND - Red Umbrella.mp3 GFRIEND - Red Umbrella.mp3
mv 09 GFRIEND - Falling Asleep Again.mp3 GFRIEND - Falling Asleep Again.mp3
mv 10 GFRIEND - Summer Rain (Instrumental).mp3 GFRIEND - Summer Rain (Instrumental).mp3
較舊一篇 怎麼下載 StreetVoice 的音樂?