[perl] stat sur plusieur fichier avec chain..
Résolu
tisba972
Messages postés
337
Date d'inscription
Statut
Membre
Dernière intervention
-
lami20j Messages postés 21331 Date d'inscription Statut Modérateur, Contributeur sécurité Dernière intervention -
lami20j Messages postés 21331 Date d'inscription Statut Modérateur, Contributeur sécurité Dernière intervention -
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
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:
- [perl] stat sur plusieur fichier avec chain..
- Fichier bin - Guide
- Fichier epub - Guide
- Fichier rar - Guide
- Comment réduire la taille d'un fichier - Guide
- Fichier .dat - Guide
2 réponses
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
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
Salut,
voici une autre possibilité pour chercher les fichier zaza
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