[Perl] récupérer le nouveau nom après rename
Patrice Karatchentzeff
patrice.karatchentzeff at gmail.com
Mar 31 Mar 12:57:38 CEST 2020
Salut
Tu t'embêtes bien avec tes boucles...
find -type f -iname -iname "*.wav" -exec rename (ce que tu veux) {} \;
Si tu fais un pipe derrière le rename, ça doit marcher.
Attention, si tu as des milliers de fichiers, il faut passer par xargs
PK
Le mar. 31 mars 2020 à 12:39, Philippe Delavalade
<philippe.delavalade at orange.fr> a écrit :
>
> Bonjour Sylvain et merci de ta réponse rapide.
>
> J'utilise le rename de perl dans un script bash.
>
> C'est en fait pour aider quelqu'un, lequel veut du bash.
>
> Voici mon code
>
> #!/bin/bash
>
> oldifs=$IFS
> IFS=$(echo -ne "\n\b")
> for f in $(find . -type f -iname '*.wav')
> do
> perl-rename 's/ /_/g; s/wav$/wav/i' "$f"
> done
> for f in $(find . -type f -name '*.wav')
> do
> ffmpeg -y -i "$f" -vn ${f%.wav}.mp3
> done
> IFS=$oldifs
>
> Si je mets le ffmpeg dans la première boucle, ça ne marche pas puisque le
> fichier ne s'appelle peut-être plus $f vu rename.
>
> J'utilise perl-rename qui est le nom dans ma distrib, rename étant un
> utilitaire linux simpliste (je ne sais plus de quel paquet il vient).
>
> Enfin la modification de IFS à cause des espaces éventuels dans le nom des
> fichiers.
>
> Merci.
>
> --
> Philippe
>
> Le mardi 31 mars à 12:09, Sylvain Lhullier a écrit :
> > Bonjour Philippe,
> > Je ne suis pas certain de te suivre : tu es en Bash ou en Perl ?
> > Peux-tu nous transmettre un extrait pertinent de ton code pour illustrer ?
> > Si, tu utilise la commande shell rename écrite en Perl, tu peux tout faire
> > en Perl (il y a même un module pour cela). Ou bien récupérer l'output
> > de la commande en shell (bof, bof).
> > Merci à toi,
> >
> > Philippe Delavalade a écrit :
> > > Bonjour.
> > >
> > > Dans un script bash (linux), je renomme des fichiers dans une boucle for
> > > puis je voudrais agir sur les fichiers renommés (dans la même boucle) mais
> > > je ne sais pas comment récupérer le nouveau nom. Bien sûr, je peux faire
> > > une deuxième boucle mais ça ne me semble pas élégant.
> > >
> > > Rien là-dessus dans perldoc ni dans mes recherches sur le net.
> > >
> > > Désolé si la question est triviale (ce que je crains d'ailleurs).
> > >
> > > Merci par avance.
> > >
> > > --
> > > Philippe
> > > _______________________________________________
> > > Perl mailing list
> > > Perl at mongueurs.net
> > > http://listes.mongueurs.net/mailman/listinfo/perl
> > > Attention, les archives sont publiques
> >
> > --
> > Sylvain Lhullier
> > Formation Perl https://formation-perl.fr/
> > Président des Mongueurs de Perl http://mongueurs.net/
> > _______________________________________________
> > Perl mailing list
> > Perl at mongueurs.net
> > http://listes.mongueurs.net/mailman/listinfo/perl
> > Attention, les archives sont publiques
> _______________________________________________
> Perl mailing list
> Perl at mongueurs.net
> http://listes.mongueurs.net/mailman/listinfo/perl
> Attention, les archives sont publiques
--
|\ _,,,---,,_ Patrice KARATCHENTZEFF
ZZZzz /,`.-'`' -. ;-;;,_ mailto:patrice.karatchentzeff at gmail.com
|,4- ) )-,_. ,\ ( `'-'
'---''(_/--' `-'\_)
Plus d'informations sur la liste de diffusion Perl