Les Allergies
Alimentaires
Posez votre question Signaler

[PERL] trouver un fichier [Résolu]

Houston-12 36Messages postés 18 décembre 2003Date d'inscription - Dernière réponse le 23 janv. 2008 à 09:21
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
Lire la suite 

[PERL] trouver un fichier »

Suggestions
3 réponses
Réponse
+3
moins plus
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__
Ajouter un commentaire
Réponse
+1
moins plus
Ca marche nikel.

Merci beaucoup
Ajouter un commentaire
Réponse
+0
moins plus
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 ?
Ajouter un commentaire
Ce document intitulé « [PERL] trouver un fichier » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?