Programmation
Programmer en divers langages Programmation
Programmer en divers langages
Programmation
Programmer en divers langages
Sondages
Votez pour une réponse
Perl
Forum Perl
Php
Forum Php
Javascript
Forum Javascript
Programmation
Tout sur la programmation
MS Access
Forum sur access
Dreamweaver
Forum d'aide
Flash
Aide sur Flash
Petites Annonces
Petites Annonces
Livre d'Or
Livre d'Or
Liens
Liens favoris

Probleme traitement expression regulière Forum Aide en perl
[Envoyer un message] [Forum perl]
(5 visiteurs)

Forum Aide en perl Modification: 12/8/2008
Création: 25/7/2002

De l'aide pour vos programmes et scripts en Perl

 
367 messages déposés

Probleme traitement expression regulière

Envoi de mikila le 14 Aout 2003 17:56:51:

Bonjour,

J'ecris un script Perl pour traiter un fichier de Log Ftp, mais l'execution ne retourne rien.Je pense que ça merde au niveau des expressions regulières mais j'ai du mal a retrouver ou ca bloque. Quelqu'un pourrait me donner un coup de main ?

Merci d'avance.
Voici le script

/usr/bin/perl
#

use POSIX;
use Time::Local;
my $COMMON;
my $MonthList={ 'Jan'=>1, 'Feb'=>2, 'Mar'=>3, 'Apr'=>4, 'May'=>5, 'Jun'=>6, 'Jul'=>7, 'Aug'=>8, 'Sep'=>9, 'Oct'=>10, 'Nov'=>11, 'Dec'=>12 };

$ftp_remotehost = '(\d*\.\d*\.\d*\.\d*)\s';
$ftp_localserver = '(.*)\s';
$ftp_user = '([^\s]*)\s';
$ftp_mday = '\[(\d*)\/';
$ftp_mon = '([^\s]*)\/';
$ftp_year = '([^\s]*):';
$ftp_hour = '([^\s]*)\s';
$ftp_zone = '\+(.*)\]';
$ftp_action = '"([^\s]*)\s';
$ftp_file = '([^\s]*)"\s';
$ftp_code = '^(\d*)\s';
$ftp_size = '^(.*)\s';
$ftp_time = '^(.*)';

$COMMON='^'.$ftp_remotehost.$ftp_localserver.$ftp_user.$ftp_mday.$ftp_mon.$ftp_year.$ftp_hour.$ftp_zone.$ftp_fcl.$ftp_file.$ftp_code.$ftp_size.$ftp_time ;

print "$COMMON\n\n";
while (<>)
{
if ( m#$COMMON# )
{
print "debut ....";
$user = $3;
$mon = $$MonthList{$5}-1;
$mday = $4;
$hour = $7;
$year = $6;
$action = $9;
$code = $11;
$file = $10;
$size = $12;
$t_time = $13;
if ( $size == '-' ) { $size=0; }
if ( $t_time == '-' ) { $t_time=0; }
my ($secondes, $minutes, $heures, $jour_mois, $mois, $annee, $jour_semaine, $jour_calendaire, $heure_ete) = localtime(time);
($hours, $min, $sec ) = split(":", $hour);
$time = timelocal($sec, $min, $hours, $mday, $mon, "$annee");
$date_rq = POSIX::strftime("%d/%b/%Y %T", localtime($time));
print "$date_rq#$user#$action#$file#$code#$size#$t_time\n";
}
}


Allure du fichier de Log :

207.45.248.20 monitoring [11/Aug/2003:18:20:48 +0200] "LIST " 226 60 0.067
207.45.248.20 monitoring [11/Aug/2003:18:24:48 +0200] "PASS (hidden)" 230 - -


Nb: il y'a le "$ftp_localserver " entre l'adresse IP et monitoring (user). Dans mon cas, il retourne souvent un"espace" .


Réponses:


Répondre

Pseudo:
(limité à 25 caractères)
E-Mail:
Cochez cette case pour être averti à l'adresse ci-dessus d'une réponse sur ce fil de discussion

Sujet: Re: Probleme traitement expression regulière

Commentaires:

Lien optionnel URL:
Titre du lien:


Alerter Rezoweb si ce message est illégal Photos de Bretagne Humour Sondages en ligne Créez votre Forum Rezoweb gratuitement !

Vous pouvez rechercher un mot ou une expression
dans les messages indexés par Google :

Créez votre Forum gratuit Rezoweb

RezoSite hébergé gratuitement par Rezoweb