[PERL] trouver un fichier [Résolu/Fermé]

Signaler
Messages postés
33
Date d'inscription
jeudi 18 décembre 2003
Statut
Membre
Dernière intervention
23 juin 2009
-
Messages postés
33
Date d'inscription
jeudi 18 décembre 2003
Statut
Membre
Dernière intervention
23 juin 2009
-
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

3 réponses

Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 544
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
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 65492 internautes nous ont dit merci ce mois-ci

Messages postés
33
Date d'inscription
jeudi 18 décembre 2003
Statut
Membre
Dernière intervention
23 juin 2009
1
Ca marche nikel.

Merci beaucoup
Messages postés
33
Date d'inscription
jeudi 18 décembre 2003
Statut
Membre
Dernière intervention
23 juin 2009
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 ?