[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [gulliver] renommer en masse (numérotation croissante)


From Yon <anaseto at bardinflor dot perso dot aquilenet dot fr>
Subject Re: [gulliver] renommer en masse (numérotation croissante)
Date Sun, 13 Oct 2013 11:45:15 +0000

On Sun, Oct 13, 2013 at 01:24:20PM +0200, Gilles LAMIRAL wrote:
> Bonjour,
> 
> > Juste un remarque sur le print : il cache le chdir implicite, donc les
> > commandes affichées ne peuvent pas être lancées tel quel s'il y a des
> > sous-répertoires. (le $name_before et $_ contiennent juste le nom du
> > fichier sans le chemin complet)
> 
> Alors il faut travailler avec la variable du chemin absolu $File::Find::name
> mais revoir aussi la regex. Donc c'est mort pour Nono, trop dur.
Oui, plus le fait maintenant que j'y pense qu'essayer de passer par le
shell a le désavantage de nous rendre victimes des terrifiants
échappements du shell, et les espaces qui vont pas passer si on met pas
de guillemets. D'où l'avantage du find de perl ici qui évite ces
problèmes.

Ceci dit, pour Nono : le script initial tel quel en changeant juste le
nom du dossier dans le find pour celui contenant les fichiers que tu
veux renommer doit faire exactement ce que tu veux. Par exemple en
changeant le deuxième argument dans la ligne avec le find en :

    find(\&rename_file,"/tmp/");

on remplacera tous les fichiers à l'intérieur de /tmp/, il suffit
d'exécuter le fichier renommer.pl contenant le script avec la commande :

  $ perl renommer.pl

Voilà, voilà, j'espère que tu vas t'en sortir, et sinon tu auras au
moins quand même appris un peu de Perl ;)

-- 
Yon