Sous Knoppix v4.0 LiveDVD, j'ai un répertoire "~/Desktop/wav".
Je souhaite trouver dans ce répertoire tous les fichiers ".wav" et les
convertir en MP3 avec l'encodeur LAME. Je fais donc :
Le souci est que les fichiers produits sont nommés "filename.wav.mp3" et
je préfèrerais évidemment qu'ils soient directement de la forme
"filename.mp3".
Comment faire ?
Enfin, comment envoyer le résultat dans le répertoire "~/Desktop/MP3" ?
Merci d'avance pour vos réponses.
--
Pour une réponse privée, remplacer dans l'adresse e-mail le underscore
par un point
Le souci est que les fichiers produits sont nommés "filename.wav.mp3" et je préfèrerais évidemment qu'ils soient directement de la forme "filename.mp3". Comment faire ?
Directement dans find, rien à faire. L'idée de base serait de remplacer l'appel à lame par un appel à un script qui calcule le bon nom de fichier destination. Pour ma part, je ferais ça avec zsh plutôt que find :
cd ~/Desktop/wav for i in **/*.wav(.) lame ... $i ${i:r}.mp3
Enfin, comment envoyer le résultat dans le répertoire "~/Desktop/MP3" ?
Avec ma version, il suffit de mettre « ../MP3/ » devant « ${i:r}.mp3 » : c'est pour ça que j'ai fait un cd au début plutôt que de mettre ~/Desktop/wav dans le motif cherché.
Sinon, tu as une bonne raison de vouloir faire du MP3 plutôt que du Vorbis ? :-Þ
François RONVAUX wrote in message
<43104f85$0$12778$636a15ce@news.free.fr>:
Le souci est que les fichiers produits sont nommés "filename.wav.mp3" et
je préfèrerais évidemment qu'ils soient directement de la forme
"filename.mp3".
Comment faire ?
Directement dans find, rien à faire. L'idée de base serait de remplacer
l'appel à lame par un appel à un script qui calcule le bon nom de fichier
destination. Pour ma part, je ferais ça avec zsh plutôt que find :
cd ~/Desktop/wav
for i in **/*.wav(.)
lame ... $i ${i:r}.mp3
Enfin, comment envoyer le résultat dans le répertoire "~/Desktop/MP3" ?
Avec ma version, il suffit de mettre « ../MP3/ » devant « ${i:r}.mp3 » :
c'est pour ça que j'ai fait un cd au début plutôt que de mettre
~/Desktop/wav dans le motif cherché.
Sinon, tu as une bonne raison de vouloir faire du MP3 plutôt que du Vorbis ?
:-Þ
Le souci est que les fichiers produits sont nommés "filename.wav.mp3" et je préfèrerais évidemment qu'ils soient directement de la forme "filename.mp3". Comment faire ?
Directement dans find, rien à faire. L'idée de base serait de remplacer l'appel à lame par un appel à un script qui calcule le bon nom de fichier destination. Pour ma part, je ferais ça avec zsh plutôt que find :
cd ~/Desktop/wav for i in **/*.wav(.) lame ... $i ${i:r}.mp3
Enfin, comment envoyer le résultat dans le répertoire "~/Desktop/MP3" ?
Avec ma version, il suffit de mettre « ../MP3/ » devant « ${i:r}.mp3 » : c'est pour ça que j'ai fait un cd au début plutôt que de mettre ~/Desktop/wav dans le motif cherché.
Sinon, tu as une bonne raison de vouloir faire du MP3 plutôt que du Vorbis ? :-Þ
François RONVAUX
Nicolas George wrote:
-name '*.wav' est plus standard.
Ca marche.
Directement dans find, rien à faire. L'idée de base serait de remplacer l'appel à lame par un appel à un script qui calcule le bon nom de fichier destination. Pour ma part, je ferais ça avec zsh plutôt que find :
Marche pas :
$zsh bash: zsh: commad not found
Il semblerait que je dispose seulement de bash.
cd ~/Desktop/wav for i in **/*.wav(.) lame ... $i ${i:r}.mp3
Marche pas :
$cd ~/Desktop/wav $for i in **/*.wav(.) ; do lame ... $i ${i:r}.mp3 ; done bash: syntax error near unexpected token '('
Si je fais :
$cd ~/Desktop/wav $for i in *.wav ; do lame [options] $i ${i:r}.mp3 ; done
Les fichiers sont encodés mais les filenames restent en ".wav.mp3".
Sinon, tu as une bonne raison de vouloir faire du MP3 plutôt que du Vorbis ?
Support universel. Vu la capacité des baladeurs MP3, je peux me permettre des morceaux encodés au bitrate maximal (320 kb/s) pour atteindre une qualité équivalente au Vorbis.
Nicolas George wrote:
-name '*.wav' est plus standard.
Ca marche.
Directement dans find, rien à faire. L'idée de base serait de remplacer
l'appel à lame par un appel à un script qui calcule le bon nom de fichier
destination. Pour ma part, je ferais ça avec zsh plutôt que find :
Marche pas :
$zsh
bash: zsh: commad not found
Il semblerait que je dispose seulement de bash.
cd ~/Desktop/wav
for i in **/*.wav(.)
lame ... $i ${i:r}.mp3
Marche pas :
$cd ~/Desktop/wav
$for i in **/*.wav(.) ; do lame ... $i ${i:r}.mp3 ; done
bash: syntax error near unexpected token '('
Si je fais :
$cd ~/Desktop/wav
$for i in *.wav ; do lame [options] $i ${i:r}.mp3 ; done
Les fichiers sont encodés mais les filenames restent en ".wav.mp3".
Sinon, tu as une bonne raison de vouloir faire du MP3 plutôt que du Vorbis ?
Support universel.
Vu la capacité des baladeurs MP3, je peux me permettre des morceaux
encodés au bitrate maximal (320 kb/s) pour atteindre une qualité
équivalente au Vorbis.
Directement dans find, rien à faire. L'idée de base serait de remplacer l'appel à lame par un appel à un script qui calcule le bon nom de fichier destination. Pour ma part, je ferais ça avec zsh plutôt que find :
Marche pas :
$zsh bash: zsh: commad not found
Il semblerait que je dispose seulement de bash.
cd ~/Desktop/wav for i in **/*.wav(.) lame ... $i ${i:r}.mp3
Marche pas :
$cd ~/Desktop/wav $for i in **/*.wav(.) ; do lame ... $i ${i:r}.mp3 ; done bash: syntax error near unexpected token '('
Si je fais :
$cd ~/Desktop/wav $for i in *.wav ; do lame [options] $i ${i:r}.mp3 ; done
Les fichiers sont encodés mais les filenames restent en ".wav.mp3".
Sinon, tu as une bonne raison de vouloir faire du MP3 plutôt que du Vorbis ?
Support universel. Vu la capacité des baladeurs MP3, je peux me permettre des morceaux encodés au bitrate maximal (320 kb/s) pour atteindre une qualité équivalente au Vorbis.
Nicolas George
François RONVAUX wrote in message <43106c21$0$18577$:
$zsh bash: zsh: commad not found
Il semblerait que je dispose seulement de bash.
Toutes mes condoléances.
bash: syntax error near unexpected token '(' <snip>
Les fichiers sont encodés mais les filenames restent en ".wav.mp3".
**, (.) et ${...:r} sont des constructions spécifiques à zsh. Il est plus ou moins possible de construire des équivalents en bash, mais ça risque d'être fastidieux.
François RONVAUX wrote in message
<43106c21$0$18577$636a15ce@news.free.fr>:
$zsh
bash: zsh: commad not found
Il semblerait que je dispose seulement de bash.
Toutes mes condoléances.
bash: syntax error near unexpected token '('
<snip>
Les fichiers sont encodés mais les filenames restent en ".wav.mp3".
**, (.) et ${...:r} sont des constructions spécifiques à zsh. Il est plus ou
moins possible de construire des équivalents en bash, mais ça risque d'être
fastidieux.
François RONVAUX wrote in message <43106c21$0$18577$:
$zsh bash: zsh: commad not found
Il semblerait que je dispose seulement de bash.
Toutes mes condoléances.
bash: syntax error near unexpected token '(' <snip>
Les fichiers sont encodés mais les filenames restent en ".wav.mp3".
**, (.) et ${...:r} sont des constructions spécifiques à zsh. Il est plus ou moins possible de construire des équivalents en bash, mais ça risque d'être fastidieux.
Christophe Gaubert
$cd ~/Desktop/wav $for i in **/*.wav(.) ; do lame ... $i ${i:r}.mp3 ; done bash: syntax error near unexpected token '('
En bash :
cd ~/Desktop/wav for f in *.wav ; do lame [options] "$f" "../MP3/${f%wav}mp3" ; done
(Les guillemets au cas où tes fichiers contiennent des espaces)
-- Christophe Gaubert http://perso.wanadoo.fr/christophe.gaubert Mail posté depuis un système libre GNU/Linux
$cd ~/Desktop/wav
$for i in **/*.wav(.) ; do lame ... $i ${i:r}.mp3 ; done
bash: syntax error near unexpected token '('
En bash :
cd ~/Desktop/wav
for f in *.wav ; do lame [options] "$f" "../MP3/${f%wav}mp3" ; done
(Les guillemets au cas où tes fichiers contiennent des espaces)
--
Christophe Gaubert
http://perso.wanadoo.fr/christophe.gaubert
Mail posté depuis un système libre GNU/Linux
Et pour les fichiers se trouvant dans des sous-répertoires ?
find ~/Desktop/wav -type f -name *.wav | while read file ; do ... done
(avec des précautions si ces fichiers ont des noms vicieux) -- Jacques L'helgoualc'h
Christophe Gaubert
Christophe Gaubert wrote in message <4310ae3d$0$5364$:
Oui, ou bien mettre des guillemets autour de "$(find ...)" .
Non, ça ça ne marche pas s'il y a plus d'un fichier.
Euh, oui, exact, l'exemple sur lequel j'avais testé était un mauvais exemple... D'ailleurs, ça me surprenait un peu que ça fonctionne. Mais c'est bizarre, j'ai lu ça dans l'ABS me semble-t-il. Je vais vérifier.
-- Christophe Gaubert http://perso.wanadoo.fr/christophe.gaubert Mail posté depuis un système libre GNU/Linux
Christophe Gaubert wrote in message
<4310ae3d$0$5364$8fcfb975@news.wanadoo.fr>:
Oui, ou bien mettre des guillemets autour de "$(find ...)" .
Non, ça ça ne marche pas s'il y a plus d'un fichier.
Euh, oui, exact, l'exemple sur lequel j'avais testé était un mauvais
exemple... D'ailleurs, ça me surprenait un peu que ça fonctionne. Mais
c'est bizarre, j'ai lu ça dans l'ABS me semble-t-il. Je vais vérifier.
--
Christophe Gaubert
http://perso.wanadoo.fr/christophe.gaubert
Mail posté depuis un système libre GNU/Linux
Christophe Gaubert wrote in message <4310ae3d$0$5364$:
Oui, ou bien mettre des guillemets autour de "$(find ...)" .
Non, ça ça ne marche pas s'il y a plus d'un fichier.
Euh, oui, exact, l'exemple sur lequel j'avais testé était un mauvais exemple... D'ailleurs, ça me surprenait un peu que ça fonctionne. Mais c'est bizarre, j'ai lu ça dans l'ABS me semble-t-il. Je vais vérifier.
-- Christophe Gaubert http://perso.wanadoo.fr/christophe.gaubert Mail posté depuis un système libre GNU/Linux