Rechercher : dans
Par :

[Perl] fichier log + conversion Date en Epoch

Dernière réponse le 4 mai 2008 à 13:23:03 pianoclassique, le 23 avr 2008 à 13:25:08 
 Signaler ce message aux modérateurs

Bonjour,

J’ai besoin d'un script perl ?
J'ai reçu comment convertir en eposh mais svp intègre cette script de convertissions pour avoir un script complète.

je veux poser un date et un temps de forme secondes, minutes, heure et jours, mois, année.
Puis le script le convertit en codage eposh ensuite il prend le résultat en epoch pour chercher si cette résultat existe dans le fichier log de MRTG (installer sous ubuntu) ou non.
Si il existe il me rendre tout le ligne de log file correspondant a cette résultat eposh.

par exemple :



Données saisie:

Date au format jj/mm/aaaa : 12/04/2008
Heure au format hh:mm:ss : 10:30:55
10:30:55 12/04/2008 -> epoch : 1207996255
Correspond

Resultat:

Si : 1207996255 existe dans le fichier log de MRTG le resultat de script retourne tout la ligne de fichier log deMRTG 1207996255 937 713 937 713.

Sinon : 1207996255 n'existe pas.


Merci............................

Configuration: Windows XP
Internet Explorer 6.0

Meilleures réponses pour « [Perl] fichier log + conversion Date en Epoch » dans :
[Audio] Convertir un fichier m4a ou m4b en mp3 VoirAvec iTunes *Ouvrir iTunes Cliquer sur Edition / Préférences / Avancé / Importation Puis choisir "Encodeur mp3" Ensuite sélectionner les fichiers à convertir puis en cliquant avec le bouton droit "Convertir en mp3" Avec dbPowerAmp ...
[Audio] Conversion d'un fichier au format WMA en MP3 VoirPour convertir un fichier audio au format WMA en MP3, il suffit d'utiliser un logiciel de conversion tel que l'un des suivants : Free Mp3 Wma Converter dBpower-AMP Music Converter (DMC) MediaCoder GX::Transcoder Par ailleurs, il est à...
Convertir un fichier WAV, AVI, MPEG vers le format 3GP / 3GPP VoirPour convertir un fichier WAV, AVI, MPEG ou MP3 au format 3GP, il suffit d'utiliser l'un des logiciels suivants : Mobile 3GP Converter MediaCoder Super Format Factory On peut aussi utiliser un convertisseur en ligne tel que : Media...
Fichier DAT VoirFormat DAT Un fichier DAT Un fichier .dat est un fichier de données (.DAT signifie data). En général, il s'agit d'un fichier binaire, créé par un programme et utilisable uniquement par ce programme, ce qui signifie qu'il n'est pas censé être ouvert...

2

lami20j, le 23 avr 2008 à 14:13:21

Salut,

mets ton fichier log sur cjoint.com
je vais regarder ce soir
106485010510997108

P.S. Pas besoin d'écrire le message mille fois, une fois c'est suffisante. Merci

Répondre à lami20j

3

lami20j, le 24 avr 2008 à 09:36:30

Salut,

voilà
Le script

lami20j@debian:~/trash$ cat time2epoch.pl
#!/usr/bin/perl
use strict;use warnings;
use Time::Local;

#ouverture de fichier.log
open LOG,"fichier.log"
     or die "E/S fichier.log : $!\n";

print "Date au format jj/mm/aaaa : ";
chomp(my $d = <STDIN>); # lit depuis le clavier
                        # et enleve le caractère \n s'il existe
print "Heure au format hh:mm:ss : ";
chomp(my $h = <STDIN>); # idem (voir plus haut)

my ($heure,$min,$sec) = split /:/,$h; # le format de la saisie est hh:mm:ss
                                      # le fonction split permet d'elcater la chaîne
                                      # selon le caratère de séparation :
                                      # pour obtenir les 3 variabes
my ($jour,$mois,$annee) = split /\//,$d; # idem

my $epoch = timegm($sec, $min, $heure, $jour, $mois-1, $annee-1900);
print "$h $d -> epoch : $epoch\n";

while (<LOG>){next unless /$epoch/ and print}

__END__


Le résultat
lami20j@debian:~/trash$ cat fichier.log
1036567881 2313865839 3040227868
1036567881 937 713 937 713
1036567581 1561 229 1561 229
1036571100 1831 240 2561 273
1036567200 2473 643 2561 1647
1036566900 2312 1305 2513 1647

1036567881 2313865839 3040227868
1036567881 937 713 937 713
1036567581 1561 229 1561 229
1036571100 1831 240 2561 273
1036567200 2473 643 2561 1647
1036566900 2312 1305 2513 1647

1036567881 2313865839 3040227868
1036567881 937 713 937 713
1036567581 1561 229 1561 229
1036571100 1831 240 2561 273
1036567200 2473 643 2561 1647
1036566900 2312 1305 2513 1647
lami20j@debian:~/trash$ perl time2epoch.pl
Date au format jj/mm/aaaa : 06/11/2002
Heure au format hh:mm:ss : 08:25:00
08:25:00 06/11/2002 -> epoch : 1036571100
1036571100 1831 240 2561 273
1036571100 1831 240 2561 273
1036571100 1831 240 2561 273
lami20j@debian:~/trash$
106485010510997108

Répondre à lami20j

4

 lami20j, le 24 avr 2008 à 14:39:23

J'ai oublié de traiter le cas quand n'existe pas

lami20j@debian:~/trash$ cat time2epoch.pl
#!/usr/bin/perl
use strict;use warnings;
use Time::Local;

#ouverture de fichier.log
open LOG,"fichier.log"
     or die "E/S fichier.log : $!\n";

my $test;

print "Date au format jj/mm/aaaa : ";
chomp(my $d = <STDIN>); # lit depuis le clavier
                        # et enleve le caractère \n s'il existe
print "Heure au format hh:mm:ss : ";
chomp(my $h = <STDIN>); # idem (voir plus haut)

my ($heure,$min,$sec) = split /:/,$h; # le format de la saisie est hh:mm:ss
                                      # le fonction split permet d'elcater la chaîne
                                      # selon le caratère de séparation :
                                      # pour obtenir les 3 variabes
my ($jour,$mois,$annee) = split /\//,$d; # idem

my $epoch = timegm($sec, $min, $heure, $jour, $mois-1, $annee-1900);
print "$h $d -> epoch : $epoch\n";

while (<LOG>){next unless /$epoch/ and print and ++$test;}
print "$epoch n'existe pas\n" unless $test;

__END__
106485010510997108

Répondre à lami20j
Collection CommentÇaMarche.net