當我將 .wav 檔案轉換為 .mp3 檔案時,有沒有一種方法可以在下面一行腳本中使用正規表示式消除最後四個字元。截至目前,我的單行腳本產生以以下結尾的文件.wav.mp3
for i in *.wav; do avconv -i "$i" "$i".mp3;done
產生以下輸出
Sanctify, Separate, & Success Success.wav.mp3
There four types of love.wav.mp3
Theres too much love to let you fail.wav.mp3
答案1
你不需要正規表示式,你想要使用 Bash 的參數擴充刪除傳輸中的檔案副檔名:
for i in *.wav; do avconv -i "$i" "${i%.*}".mp3; done
這裡,"${i%.*}"
被擴展為模式參數末尾,由刪除最短匹配*
後的 everything ( )定義,即..
.wav
您也可以使用 進行字面替換"${i/.wav/.mp3}"
。