J'ai une partie de mon Filesystem (40Go) rempli de chansons au format
mp3 et ogg .
Les mp3 sont nommés *.mp3 et les ogg *.ogg .
Il n'y a pas de caracteres exotiques ( ; > # ... ) ni de chaine suspecte
(rm -rf; dd if= ... ) dans les noms de fichiers .
Par contre il y en a qui ont des espaces.
Je voudrais convertir en ogg tout ce qui est en mp3 ( les *.mp3 )
(je sais les pertes de données et de qualité que cela occasionne, mais
je dois quand meme les convertir, cela fait partie du cahier des charges)
J'ai un scrip perl mp32ogg qui fait tres bien cette conversion, mais le
souci est qu'on ne peut pas lui dire de placer le fichier resultant
ailleurs que dans le repertoire dans lequel il est lancé .
c'est a dire que si je suis dans /tmp et que je lui dit :
mp32ogg /home/audio/toto.mp3
le fichier ogg resultant sera /tmp/toto.ogg
Je vais pas m'amuser a modifier le script perl.
Je suis sous Linux, et zsh.
J'ai la liste des fichiers a convertir :
find /home/audio -name '*.mp3' >liste.txt
Donc finalement il me faudrait un script qui fasse l'algo suivant
Soient deux fichiers a convertir (deux lignes de liste.txt) :
le script doit entrer dans /premier/path
et c'est dedans qu'il lance mp32ogg .
le script entre dans /deuxieme/path/plus/profond
et c'est dedans qu'il lance mp32ogg .
Avec awk on peut definir les FS :
BEGIN {FS="/";}
on peut s'en servir pour faire
cd print $1
cd print $2
...
mais comment s'arreter a l'avant dernier field ? parceque faut pas
tenter un 'cd' sur un fichier ... ?
Ou si il y a une solution plus simple ... je suis preneur ...
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
mlz
Le Mon, 05 Jul 2004 11:01:08 +0200, Rakotomandimby Mihamina a écrit :
Bonjour
Ou si il y a une solution plus simple ... je suis preneur ...
Merci d'avance.
dirname 'fichier'
-- Entendu sur France Inter : Journaliste : Vous préférez cliquer sur le mulot ou sur la souris ? Jospin : Les deux, je cohabite ! -+- in: Guide du Cabaliste Usenet - Bien cohabiter avec son mulot -+-
Le Mon, 05 Jul 2004 11:01:08 +0200, Rakotomandimby Mihamina a écrit :
Bonjour
Ou si il y a une solution plus simple ... je suis preneur ...
Merci d'avance.
dirname 'fichier'
--
Entendu sur France Inter :
Journaliste : Vous préférez cliquer sur le mulot ou sur la souris ?
Jospin : Les deux, je cohabite !
-+- in: Guide du Cabaliste Usenet - Bien cohabiter avec son mulot -+-
Le Mon, 05 Jul 2004 11:01:08 +0200, Rakotomandimby Mihamina a écrit :
Bonjour
Ou si il y a une solution plus simple ... je suis preneur ...
Merci d'avance.
dirname 'fichier'
-- Entendu sur France Inter : Journaliste : Vous préférez cliquer sur le mulot ou sur la souris ? Jospin : Les deux, je cohabite ! -+- in: Guide du Cabaliste Usenet - Bien cohabiter avec son mulot -+-
le script doit entrer dans /premier/path et c'est dedans qu'il lance mp32ogg .
le script entre dans /deuxieme/path/plus/profond et c'est dedans qu'il lance mp32ogg . [...]
while IFS= read -ru3 mp3; do (cd $mp3:h && mp32ogg $mp3) done 3< liste.txt
Mais pas besoin de liste.txt avec zsh:
for f (/dir/**/*.mp3(.ND)) (cd $f:h && mp32ogg $f)
Notez aussi l'option -execdir du find de BSD.
-- Stephane
Rakotomandimby Mihamina
Stephane Chazelas wrote:
for f (/dir/**/*.mp3(.ND)) (cd $f:h && mp32ogg $f)
comment on se renseigne sur cd .ND et le :h ? un petit lien vers la doc zsh qui en parle ca serai cool. en tout cas ca amrche du tonnere ... -- Rakotomandimby Mihamina Andrianifaharana Tel : +33 2 38 76 43 65 http://www.rktmb.org/Members/mihamina
Stephane Chazelas wrote:
for f (/dir/**/*.mp3(.ND)) (cd $f:h && mp32ogg $f)
comment on se renseigne sur cd .ND et le :h ?
un petit lien vers la doc zsh qui en parle ca serai cool.
en tout cas ca amrche du tonnere ...
--
Rakotomandimby Mihamina Andrianifaharana
Tel : +33 2 38 76 43 65
http://www.rktmb.org/Members/mihamina
for f (/dir/**/*.mp3(.ND)) (cd $f:h && mp32ogg $f)
comment on se renseigne sur cd .ND et le :h ? un petit lien vers la doc zsh qui en parle ca serai cool. en tout cas ca amrche du tonnere ... -- Rakotomandimby Mihamina Andrianifaharana Tel : +33 2 38 76 43 65 http://www.rktmb.org/Members/mihamina
Stephane Chazelas
2004-07-05, 19:07(+02), Rakotomandimby Mihamina:
Stephane Chazelas wrote:
for f (/dir/**/*.mp3(.ND)) (cd $f:h && mp32ogg $f)
comment on se renseigne sur cd .ND et le :h ? [...]
(.ND) sont des "globbing qualifiers" (criteres supplementaires pour la generation de fichiers). Voir info -f zsh -n 'Filename Generation' (à Glob qualifiers)
:h, ca vient de csh, c'est des "modifiers" qui marchent un peu partout (dans l'history expansion, parameter expansion, glob modifiers...), voir info -f zsh -n Modifiers
-- Stephane
2004-07-05, 19:07(+02), Rakotomandimby Mihamina:
Stephane Chazelas wrote:
for f (/dir/**/*.mp3(.ND)) (cd $f:h && mp32ogg $f)
comment on se renseigne sur cd .ND et le :h ?
[...]
(.ND) sont des "globbing qualifiers" (criteres supplementaires
pour la generation de fichiers).
Voir
info -f zsh -n 'Filename Generation'
(à Glob qualifiers)
:h, ca vient de csh, c'est des "modifiers" qui marchent un peu
partout (dans l'history expansion, parameter expansion, glob
modifiers...), voir
info -f zsh -n Modifiers
for f (/dir/**/*.mp3(.ND)) (cd $f:h && mp32ogg $f)
comment on se renseigne sur cd .ND et le :h ? [...]
(.ND) sont des "globbing qualifiers" (criteres supplementaires pour la generation de fichiers). Voir info -f zsh -n 'Filename Generation' (à Glob qualifiers)
:h, ca vient de csh, c'est des "modifiers" qui marchent un peu partout (dans l'history expansion, parameter expansion, glob modifiers...), voir info -f zsh -n Modifiers