[Perl] fichier log + conversion Date en Epoch
Fermé
pianoclassique
Messages postés
108
Date d'inscription
jeudi 10 avril 2008
Statut
Membre
Dernière intervention
19 janvier 2009
-
23 avril 2008 à 13:25
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 - 24 avril 2008 à 14:39
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 - 24 avril 2008 à 14:39
A voir également:
- [Perl] fichier log + conversion Date en Epoch
- Fichier rar - Guide
- Comment réduire la taille d'un fichier - Guide
- Comment ouvrir un fichier epub ? - Guide
- Ouvrir un fichier .dat - Guide
- Ouvrir fichier .bin - Guide
3 réponses
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 569
23 avril 2008 à 14:13
23 avril 2008 à 14:13
Salut,
mets ton fichier log sur cjoint.com
je vais regarder ce soir
mets ton fichier log sur cjoint.com
je vais regarder ce soir
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 569
24 avril 2008 à 09:36
24 avril 2008 à 09:36
Salut,
voilà
Le script
Le résultat
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$
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 569
24 avril 2008 à 14:39
24 avril 2008 à 14:39
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__