regex удалить последние четыре символа

Есть ли способ, которым я мог бы удалить последние четыре символа с регулярным выражением в сценарии ниже одной строки, когда я конвертирую файлы .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 

Вы не хотите регулярное выражение, вы хотите использовать расширение параметра Bash для удаления расширения файла в пути:

 for i in *.wav; do avconv -i "$i" "${i%.*}".mp3; done 

Здесь "${i%.*}" Расширяется как шаблон в конце параметра , как определено всем ( * ) после . удаление кратчайшего совпадения, т. е. .wav .

Вы также можете выполнить литеральную замену с помощью "${i/.wav/.mp3}" .