Existe uma maneira de eliminar os últimos quatro caracteres com regex no script de uma linha abaixo enquanto converto arquivos .wav em arquivos .mp3. A partir de agora, meu script de linha única produz arquivos que terminam em.wav.mp3
for i in *.wav; do avconv -i "$i" "$i".mp3;done
Produz a saída abaixo
Sanctify, Separate, & Success Success.wav.mp3
There four types of love.wav.mp3
Theres too much love to let you fail.wav.mp3
Responder1
Você não quer um regex, você quer usar o Bashexpansão de parâmetrospara 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 emo final do parâmetro, conforme definido por tudo ( *
) após a .
exclusão da correspondência mais curta, ou seja, .wav
.
Você também pode fazer uma substituição literal por "${i/.wav/.mp3}"
.