[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 Fri, 11 Oct 2013 20:19:23 +0000

On Fri, Oct 11, 2013 at 08:12:19PM +0000, Yon wrote:
> On Fri, Oct 11, 2013 at 09:33:37PM +0200, nono wrote:
> > Je désire ajouter un 0 devant les noms de fichiers qui commencent par un
> > chiffre de 1 à 9 suivi d'un espace. Cet espace est lui même suivi de
> > tout type de caractère (même exotique). Les dizaines et autres nombres à
> > 2 chiffres  (10 11 12... 20 21 22...) ne sont donc pas concernés.
> Ce petit script perl fait peut-être ce que tu veux (si j'ai bien
> compris). 
> 
>   #!/usr/bin/perl
>   # dans un fichier renommer.pl
>   use File::Find;
>   use File::Copy;
> 
>   sub rename_file {
>       my $name_before = $_;
>       if (s/^([1-9]) /0$1 /) {
>           move($name_before,$_);
>       }
>   }
> 
>   find(\&rename_file,"chemin/vers/ton/dossier/");
Je me rends compte qu'il manque un peu d'explications dans le cas où tu
ne connaîtrais pas perl :)

Le find applique la fonction rename_file récursivement à partir du
dossier que tu précises (comme la commande find du terminal), et un
chdir est fait implicitement à l'appel de rename_file, et $_ est le nom
du fichier courant. Le reste parle de soi-même (à part peut-être
l'expression régulière).

-- 
Yon