正規表示式刪除最後四個字符

正規表示式刪除最後四個字符

當我將 .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}"

相關內容