Ouverture d'un fichier selon une partie de son nom - Perl - Programmation
Marsh Posté le 18-03-2011 à 11:03:27
Bon, en virant ton test initial pour prendre moins de place. Ce qui te manquait, c'est de connaitre l'usage de glob()
Code :
|
On peut aussi l'écrire de manière plus compacte:
Code :
|
Notes que glob() donne la liste des fichiers correspondant à un pattern dans le repertoire courant.
Il faut donc éventuellement faire un
cd "le bon répertoire";
avant d'appeler glob(), selon l'endroit ou tu executes le script.
A+,
Marsh Posté le 05-04-2011 à 13:03:39
Je n'avais pas vu ta réponse
Merci pour ton aide, je teste ça cette après midi au boulot
Marsh Posté le 18-03-2011 à 10:18:55
Salut,
Pour commencer, je précise que je suis totalement débutant en PERL
Pour le boulot, on m'a demandé d'écrire un petit script qui :
-> se connecte à un serveur et ouvre 2 fichiers selon la date du jour (fichiers de log créés chaque jour)
-> selon la taille du fichier, envoi d'un mail si c'est ok ou s'il y a des erreurs.
Les 2 fichiers que je dois analyser chaque jour se nomment par exemple :
- BatchPorterExport_error_11-03-18_244845.log
- BatchPorterExport_error_11-03-18_243214.log
J'ai déjà réussi à récupérer la date du jour + le mois + l'année de façon à ouvrir les logs mais je souhaite virer les 6 derniers chiffres qui correspondent à l'heure exacte du log.
Je bloque actuellement à l'ouverture du fichier. Pour le moment je souhaite juste ouvrir le fichier et écrire dedans pour voir si mon ouverture se passe bien :
#!/usr/bin/perl
use strict;
use warnings;
my $filesize = -s "test.txt";
print "Size: $filesize\n";
if ($filesize > 136) {print "ATTENTION ERREURS DANS LE FICHIER TEST\n";}
else {print "PAS D'ERREUR\n";}
my ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(time);
$year = $year - 100;
$mon = sprintf("%02d",$mon+1);
$mday = sprintf("%02d",$mday);
print "Nous sommes le : ".$mday." du mois ".$mon." de l'annee ".$year."\n";
open (FILE1, '>>',"BatchPorterExport_error_".$year."-".$mon."-".$mday."_*.log" ) || die("Probleme d'ouverture FILE1\n" );
print FILE1 ("Nous sommes le : ".$mday." du mois ".$mon." de l'ann←e ".$year."\n" );
Voilà ça bloque au niveau du ."_*.log". L'étoile doit servir à remplacer l'heure dans le nom de fichier pour ouvrir n'importe lequel de mes 2 fichiers de logs (je ferais une boucle pour cela) mais je ne vois pas comment m'y prendre......
Merci d'avance pour votre aide
A++
Message édité par little28 le 18-03-2011 à 10:20:04