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

RE : "rename"



--- "Maxime Petit-laposte.net"
<max72.petit@laposte.net> a écrit :

> Salut,
Salut,
> je souhaite renommer tout les fichiers d'un
> répertoire.
> après avoir cherché sur le net, je sais tout faire,
> sauf ce qui m'intéresse.
> 
> Je veux juste rajouter des caractères (les mêmes) au
> début des noms des 
> fichiers:
> 
> 01.xyz
> 02.xyz
> 
> deviennent:
> 
> le_fichier_01.xyz
> le_fichier_02.xyz
> 
> "rename" doit pouvoir faire ça très bien avec
> quelque chose du genre
>     + (pour ajouter)
>     * (pour modifier tous les fichiers du
> répertoire)
> mais je ne sais pas quel est l'ordre à donner à tout
> ça.
> 
> Merci
> Max
> 
> ps: dans les pages man ils parlent de langage Perl
> pour les scripts de 
> "rename".
> est ce que toutes les lignes de commandes sont en
> Perl; ou bien cela 
> dépend-il des fonctions?

Ce sont des expressions regulières utilisés par perl,
php, les même que j'utilise pour parser le nom du
fichier

> si oui, perl est-il accessible aux débutants? (j'ai
> fais un peu de 
> fortran et de programmation machine dans une vie
> antérieure)

Le perl c'est hyper je trouve pour faire des choses
simples assez facilement. Le petit script suivant doit
faire ce que tu veux enfin j'espère, teste le
C'est pas tres propre mais chez moi ça a l'air de
fonctionner

#!/usr/bin/perl
my $count = 0 ;
opendir(DIR, ".");
@files = grep { /[^\.]/ } readdir(DIR);
closedir(DIR);

foreach $file (@files) {
   print "$file\n";
   $count++;
   $file =~ /(\w+)\.*(\w*)/ ;
   if ( $2 ne ""){
        my $new_file = "$1_$count.$2" ;
        rename($file,$new_file);
   }
   else {
        my $new_file = "$1_$count" ;
        rename($file,$new_file);
      }

}

Voila ciao 
AC
 



	
	
		
___________________________________________________________________________ 
Découvrez un nouveau moyen de poser toutes vos questions quelque soit le sujet ! 
Yahoo! Questions/Réponses pour partager vos connaissances, vos opinions et vos expériences. 
http://fr.answers.yahoo.com 



Reply to: