[PERL] trouver un fichier

Résolu
Houston-12 Messages postés 33 Statut Membre -  
Houston-12 Messages postés 33 Statut Membre -
Bonjour,

Je cherche à placer dans une variable le nom d'un fichier dont je connais le début. De plus, je dois sélectionner le fichier le plus récent.

ex: le cherche le fichier débutant par AAA dans un répertoire définit.
Dans ce répertoire, j'ai les fichiers suivants :
AAAC_9_1.fichier
AAAC_9_2.fichier
BBBV_5_0.fichier
BBBV_5_1.fichier
Je souhaite donc entrer en paramètre AAA et qu'il place dans une variable AAAC_9_1.fichier afin que je la renvoie dans d'autres commandes.

J'ai essayé d'utiliser la commande find et glob mais sans résultat concret.

Merci pour votre aide
Configuration: Windows XP
Opera 9.25

3 réponses

  1. lami20j Messages postés 21506 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 571
     
    Salut,

    essaie comme ça
    #!/usr/bin/perl
    use strict;use warnings;
    use File::Find;
    
    my ($recent,$nom,$rep);
    $rep = '/home/lami20j/trash';
    
    # cherche le plus recent
    sub plus_recent {
            return unless -f and /^abc/;
            return if defined $recent and $recent > (stat($_))[9];
            $recent = (stat(_))[9];
            $nom = $File::Find::name;
    }
    
    find(\&plus_recent,$rep);
    
    if(defined($nom)){
            print "$nom\n";
    }else {
            print "Fichier inexistant!\n";
    }
    __END__
    
    5
  2. Houston-12 Messages postés 33 Statut Membre 1
     
    Ca marche nikel.

    Merci beaucoup
    1
  3. Houston-12 Messages postés 33 Statut Membre 1
     
    use File::Find;
    sub wanted {
    return unless -f;
    if ($_ =~"^abc") {print $_,"\n"};
    }
    find \&wanted, ".";

    me renvoie la liste des fichiers du répertoire débutant par le motif abc. Par contre, comment le sélectionner grace à la date la plus récente ?
    0