Você não quer um regex, você quer usar a expansão de parâmetro do Bash para remover a extensão do arquivo em trânsito:
for i in *.wav; do avconv -i "$i" "${i%.*}".mp3; done
Aqui, "${i%.*}"
é expandido como o padrão no final do parâmetro , conforme definido por tudo ( *
) após o .
excluir a correspondência mais curta, ou seja, .wav
.
Você também pode fazer uma substituição literal com "${i/.wav/.mp3}"
.