[Linux] script bash
Jonathan ROTH
jonathan@::1
Mer 7 Nov 19:16:05 CET 2007
Serge Schmitt a écrit :
> Salut !
>
> Je me sers avec bonheur de ce script :
> (je sais... mais on m'a offert un iPod mini il y a un an !)
>
> for i in *.ogg; do ogg123 -d wav -f - "$i" | lame -b 160 -h -
>> "$i".mp3; done
>
> Ce script présente le défaut suivant :
>
> truc.ogg est réencodé/nommé truc.ogg.mp3 !
>
> Est-il possible de modifier ce script pour supprimer le ".ogg." du mp3 ?
>
> Cela nécessite en l'état un renommage un peu fastidieux (je ne transfère
> pas tous mes albums en une fois), et je ne sais pas comment chercher
> une telle solution...
>
> Merci pour les pistes.
J'ai une deuxième proposition, que j'avais trouvée parce que mes boucles
'for' avaient des comportements douteux avec divers caractères, espaces
en particulier: (-maxdepth permet de ne pas descendre dans l'arborescence)
find [-maxdepth 1] -name *.ogg | ( while read source; do ogg123 -d wav
-f - "$source" | lame -b 160 -h - > "$(basename "$source" .ogg).mp3"; done )
PS: le tout en une ligne, et ce sont bien des parenthèses et non des
accolades.
Plus d'informations sur la liste de diffusion linux