[perl] stat sur plusieur fichier avec chain..

Résolu/Fermé
tisba972 Messages postés 334 Date d'inscription mardi 15 juillet 2008 Statut Membre Dernière intervention 9 septembre 2011 - 21 août 2008 à 16:22
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 - 27 août 2008 à 18:29
Bonjour,

Je souhaiterai faire un stat sur tous les fichiers d'un dossier connu ayant pour nom un partie d'un prefixe défini ...
J'explique :

$DOSSIER = "/home/toto/bidule";
$PREFIXE = "zaza";

je veux donc faire un stat sur tous les fichier contenant "zaza" dans leur nom dans le dossier /home/toto/bidule

pour l'instant j'ai essayé ceci :

$DOSSIER = $DOSSIER."/*".$PREFIXE."*";
$TEMPS_FICHIER = (stat($DOSSIER))[9];

mais sans succès.
Quelqu'un peut-il m'indiquer d'où vient l'erreur?
merci d'avance
A voir également:

2 réponses

tisba972 Messages postés 334 Date d'inscription mardi 15 juillet 2008 Statut Membre Dernière intervention 9 septembre 2011 44
27 août 2008 à 16:37
voila comment je m'y suis pris :

if($PREFIXE ne "") #on va recuperer le temps du dernier fichier arrivé
{
my $j = 0;
$TEMPS_FICHIER = 0; #sera le temps du dernier fichier arrivé
$TOUS_FICHIER = `ls -l $DOSSIER|grep '$PREFIXE'`; #enregistre tous les fichier avec le prefixe que j'ai désigné
@L_FICHIER = split "\n",$TOUS_FICHIER;
while($j < @L_FICHIER)
{
@FICHIER = split " ",$L_FICHIER[$j];
$NOM_FIC = $FICHIER[8];
$TOUS_TEMPS_FICHIER = (stat($DOSSIER."/".$NOM_FIC))[9];
if ($TOUS_TEMPS_FICHIER > $TEMPS_FICHIER)
{
$TEMPS_FICHIER = $TOUS_TEMPS_FICHIER;

}

$j += 1;

}

}

voila le travail
0
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 567
27 août 2008 à 18:29
Salut,

voici une autre possibilité pour chercher les fichier zaza
#!/usr/bin/perl
use strict;use warnings;
use File::Find;

my ($f,$s,$rep);
$rep = '/home/toto/bidule/';

# cherche fichiers zaza
sub cherche_zaza {
        $f=$File::Find::name;
        $s=(stat($f))[9] and print "$f $s\n" if $f=~/zaza/;
}

find(\&cherche_zaza,$rep);
__END__
Si tu veux le fichier pous recent voici un exemple à adapter http://www.commentcamarche.net/forum/affich 4735450 perl trouver un fichier#2
0