Instale o comando flac
do pacote com o mesmo nome e execute
#!/bin/bash
find . -name '*.wav' |
while read file # eg stuff/artist/album/title.wav
do file="$PWD/${file#./}" # make absolute to get more info
album=${file%/*} # stuff/artist/album
artist=${album%/*} # stuff/artist
album=${album##*/} # album
artist=${artist##*/} # artist
title=${file##*/} # title.wav
title=${title%.wav} # title
flac -s --best --delete-input-file \
--tag="TITLE=$title" \
--tag="ALBUM=$album" \
--tag="ARTIST=$artist" \
"$file" # creates .flac removes .wav
done
O título é o nome da base do arquivo, menos o sufixo .wav,
álbum é o diretório imediato acima, e artista o
diretório acima disso. A opção --delete-input-file
remove o .wav. Veja Expansão do Parâmetro no bash
página man para ${var%pattern}
, que remove o padrão glob (ou seja, formado com *
?
e [...]
)
no final da variável, ou no início ($ {var # pattern});
as versões %% e ## removem as correspondências mais longas.