Lecture d'un fichier et conversion date Perl

Résolu/Fermé
bisbis1985 Messages postés 52 Date d'inscription lundi 11 août 2008 Statut Membre Dernière intervention 13 juin 2012 - 21 août 2010 à 01:34
dubcek Messages postés 18718 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 22 mars 2024 - 23 août 2010 à 09:33
Bonjour,

Je suis un débutant en Perl , J'aimerai lire un fichier de format Nombre Date Nombre et convertir la date en seconde

Exemple d'entete :

23446663 2010-08-20 23:34:23 9899292

Merci de votre aide

A voir également:

8 réponses

dubcek Messages postés 18718 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 22 mars 2024 5 615
22 août 2010 à 16:10
hello
$ export TZ=$(date +%Z)
$ 
$ cat  p2
#!/usr/bin/perl

use Time::Piece ;
open(my $in,  "<", $ARGV[0]);
while (<$in>) {
   chomp;
   ($c1,$c2,$c3,$c4)=split(/\s+/);
   my $t = Time::Piece->strptime($c2 . " " . $c3,"%Y-%m-%d %T");
   print $t->strftime("%s\n");
}

$ cat a2
23446663 2010-08-20 23:34:23 9899292
$ 
$ ./p2 a2
1282347263
$ 
$ # vérifions
$ d="2010-08-20 23:34:23" ; date -d "$d"  +%s
1282347263
$
0
bisbis1985 Messages postés 52 Date d'inscription lundi 11 août 2008 Statut Membre Dernière intervention 13 juin 2012 3
22 août 2010 à 16:21
Bonjour

Merci pour ta réponse mais je voudrais afficher la meme forme du fichier en remplaçant 2010-08-20 23:34:23 par 1282347263


Cad

23446663 1282347263 9899292
535366367 1282347267 0029329

Et Merci bcp
0
dubcek Messages postés 18718 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 22 mars 2024 5 615
Modifié par dubcek le 22/08/2010 à 16:34
alors on imprime $c1, le temps et $c4, remplacer
print $t->strftime("%s\n");
par
printf "%s %s %s\n", $c1, $t->strftime("%s"), $c4;
0
bisbis1985 Messages postés 52 Date d'inscription lundi 11 août 2008 Statut Membre Dernière intervention 13 juin 2012 3
22 août 2010 à 16:44
Bonjour

Je l'execute sous windows , il me donne just les 2 champ 1 er et 3 eme

perl test.pl a2,

23446663 9899292
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
dubcek Messages postés 18718 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 22 mars 2024 5 615
22 août 2010 à 16:58
je l'exécute sur Linux.
Il n'y a pas de message d'erreur ?
pour voir si il lit tous les champs imprimer
printf "%s %s %s %s\n", $c1, $c2, $c3, $c4 ;
0
bisbis1985 Messages postés 52 Date d'inscription lundi 11 août 2008 Statut Membre Dernière intervention 13 juin 2012 3
22 août 2010 à 17:05
Il lit tous les champs mais pr le résultat il n'affiche pas le 2 eme champs
0
bisbis1985 Messages postés 52 Date d'inscription lundi 11 août 2008 Statut Membre Dernière intervention 13 juin 2012 3
22 août 2010 à 17:20
Je pense que ce time:Piece n'existe pas sous Perl version windows nn !!
0
dubcek Messages postés 18718 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 22 mars 2024 5 615
23 août 2010 à 09:33
que répond cette commande
 perl -e 'use POSIX qw(strftime); print strftime("%Y-%m-%d %H:%M:%S\n", localtime)'
0