close

$ sudo apt-get install normalize-audio mpg123

情況一: 只有一層目錄, 且檔名不重複

$ cd /path/to/mp3
$ tree

.
├── album01
│   ├── file01.mp3
│   ├── file02.mp3
│   ├── file03.mp3
├── album02
│   ├── track01.mp3
│   ├── track02.mp3
│   ├── track03.mp3
└── album03
    ├── song01.mp3
    ├── song02.mp3
    └── song03.mp3

產生 Soft Link
$ find ./ -type f -name "*.mp3" -exec ln -s {} ./ \;

檢查是否有失敗連結
$ find ./ -type l | while read l; do if [ ! -e "$l" ]; then ls -l --color "$l"; fi; done
通常是檔名問題造成 Soft Link 產生失敗, 更名後刪除所有 Soft Link 並重複前一動作重新產生 Soft Link 即可

檢查檔案數量是否一致
$ find ./ -type f -name "*.mp3" | wc -l
$ find ./ -type l -name "*.mp3" | wc -l

批次平均音量
$ normalize-mp3 -m -v --mp3 --bitrate 320 *.mp3

把處理好的 MP3 檔案移入所屬目錄
$ find -maxdepth 1 -type d | tail -n +2 | while read d; do \
    cd "$d"; ls | while read f; do \
        if [ -f "../$f" ] && [ ! -h "../$f" ]; then mv "../$f" ./; fi \
    done; cd -; done \

情況二: 多重目錄且有重複檔名

$ cd /path/to/mp3
$ tree

.
├── collection01
│   ├── disk01
│   │   ├── track01.mp3
│   │   └── track02.mp3
│   └── disk02
│       ├── track01.mp3
│       └── track02.mp3
└── collection02
    ├── disk01
    │   ├── track01.mp3
    │   └── track02.mp3
    └── disk02
        ├── track01.mp3
        └── track02.mp3

產生 Soft Link
$ find ./ -name "*.mp3" | while read f; do LINKNAME="$(echo $f | awk -F '^./' '{print $2}' | sed 's/\//xxxxx/g')"; ln -s "$f" "$LINKNAME" 2>/dev/null; done

檢查是否有失敗連結
$ find ./ -type l | while read l; do if [ ! -e "$l" ]; then ls -l --color "$l"; fi; done
通常是檔名問題造成 Soft Link 產生失敗, 更名後刪除所有 Soft Link 並重複前一動作重新產生 Soft Link 即可

檢查檔案數量是否一致
$ find ./ -type f -name "*.mp3" | wc -l
$ find ./ -type l -name "*.mp3" | wc -l

批次平均音量
$ normalize-mp3 -m -v --mp3 --bitrate 320 *.mp3

把處理好的 MP3 檔案移入所屬目錄
$ ls *.mp3 | while read f; do if [ -n "$(echo $f | grep xxxxx)" ]; then mv "$f" "$(echo -n $f | sed 's/xxxxx/\//g')"; fi; done

感謝 Jamyy's Weblog 聯結

arrow
arrow
    文章標籤
    數位生活
    全站熱搜
    創作者介紹
    創作者 Manatee 的頭像
    Manatee

    Manatee的Linux部落格

    Manatee 發表在 痞客邦 留言(0) 人氣()