呆呆shell程式 - mp3批次改檔名
有時候常常會偶然有機會下載到一些音樂
運氣好的時候下載的的檔名會是
01.你好嗎?.mp3
02.我很好!.mp3
.......
這樣的當然就很棒哩!
方便以後自己聽音樂!
但是有時後下載的卻是~
01.mp3 02.mp3 03.mp3...
這樣的就比較麻煩~
要從歌曲列表上一首一首的複製
然後一首一首的改檔名
每次都覺得這樣的動作很麻煩
於是寫哩一隻shell來作這樣的工作
但是我只會linux~
我只會用shell來寫~windows不適用唷!
而且我沒作啥判斷機制~
基本上我是方便我用就好@@

我們來看看程式內容~rename.sh
#!/bin/bash

echo "注意唷!檔案格式要為(編號)(一點)(副檔名)ex:01.mp3,02.mp3,03.mp3,...."
echo "歌曲列表形式要為(編號)(一點)(歌曲名稱)ex:01.XXX,02.xxx,03.xxx,..."
echo "歌曲名稱內不得再有'.'與'~'與'mp3'的字元,以利程式執行!"
read -p "輸入歌曲列表檔案名稱: " list

ls -l *.mp3 | cut -d" " -f 11 > .mp3_file_list
ls *.mp3 | cut -d. -f 1 > .num
ls *.mp3 | cut -d. -f 2 > .mp3
cat $list | cut -d. -f 2 > .name
paste -d. .num .name .mp3 > .join
echo "預覽"
cat .join

read -p "是這樣嗎?(y/n)" yesno
case "$yesno" in
    y) cnt=`cat .mp3_file_list | wc -l | cut -d" " -f1`
      for((i=1;i<=$cnt;i++))
      do
          echo 'mv' >> ".mv"
      done
      echo "#!/bin/bash" > .doing.sh
      chmod 777 .doing.sh
      paste -d~ ".mv" .mp3_file_list .join >> .doing.sh
      cat .doing.sh | sed s/mp3/mp3'"'/g | sed s/~/' "'/g > .doing.sh
      bash .doing.sh;;
    n) echo "放棄囉!";;
    *) echo "不是預期的選項唷!請再執行一次吧!"
esac
rm -rf .mp3_file_list .num .mp3 .name .join .doing.sh ".mv"


來看看歌曲列表的檔案list
隨便找的啊~沒有特別意義唷~
01. Voice of Angels
02. 隱形的雪
03. Kissy
04. 想飛躍
05. 謝謝你
06. Super Love
07. Vickie
08. 過渡時期
09. 心電感應
10. 自然醒
11. 喜歡喜歡
12. 維他命C,雙倍!
13. Michelle



現在的音樂檔案名稱是
01.mp3 02.mp3 03.mp3 ........13.mp3

來執行rename.sh囉~~執行後應該是更名ok囉!
01. Voice of Angels .mp3
02. 隱形的雪 .mp3
03. Kissy.mp3
04. 想飛躍 .mp3
05. 謝謝你.mp3
06. Super Love .mp3
07. Vickie .mp3
08. 過渡時期 .mp3
09. 心電感應.mp3
10. 自然醒 .mp3
11. 喜歡喜歡 .mp3
12. 維他命C,雙倍!.mp3
13. Michelle .mp3

小小東西~~純粹方便自己使用而已~~
見笑哩~~哈阿哈哈哈哈哈哈
其實只是作些字串處理而已~
更多資訊請參考:
最新超值旗艦機開箱
比螺旋燈泡還省電的迷你 NAS
26800mAh筆電行動電源