2014-11-05 60 views

回答

2

試試這個:

find . -type f -name "*.wav" -exec bash -c 'mv $0 ${0/\.wav/\.mp3}' {} \; 

查找 - 將遞歸地查找文件類型,其起始當前directoy的名稱如* .wav -exec將以.wav擴展名將文件移動到.mp3。

+0

這只是移動了文件,但我想用SOX或跛腳 – 2014-11-05 12:16:13

+0

@MaheshwarSelvakumar然後,只需切換'mv'到'lame' – BroSlow 2014-11-05 12:29:52

+0

你真的應該加上'-maxdepth 1'轉換文件,因爲在這個問題中沒有提到遍歷深度超過1的水平。 – BroSlow 2014-11-05 12:30:43

0

爲什麼不是一個循環而不是多個xargs?

LameApp="/YourAppPath/lame.exe" 

ls | while read WavFileWExt 
do 
    "${LameApp}" "${WavFileWExt%.*}.mp3" "${WavFileWExt}" 
done 
+0

我得到一個錯誤sh:lame:命令未找到 – 2014-11-05 12:20:04

+1

當管道系統,解析'ls'總是容易出錯時,'-1'是多餘的,引用你的變量/括號擴展,並添加'.mp3'結束第二個參數(沒有wav)跛行 – BroSlow 2014-11-05 12:35:34

+0

對不起,複製舊的測試版本。我把最新的一個,並刪除-1(習慣使用其他選項) – NeronLeVelu 2014-11-05 15:29:56