Lecture d'un fichier et conversion date Perl

Résolu
bisbis1985 Messages postés 52 Date d'inscription   Statut Membre Dernière intervention   -  
dubcek Messages postés 18789 Date d'inscription   Statut Contributeur Dernière intervention   -
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 18789 Date d'inscription   Statut Contributeur Dernière intervention   5 637
 
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   Statut Membre Dernière intervention   3
 
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 18789 Date d'inscription   Statut Contributeur Dernière intervention   5 637
 
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   Statut Membre Dernière intervention   3
 
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 18789 Date d'inscription   Statut Contributeur Dernière intervention   5 637
 
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   Statut Membre Dernière intervention   3
 
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   Statut Membre Dernière intervention   3
 
Je pense que ce time:Piece n'existe pas sous Perl version windows nn !!
0
dubcek Messages postés 18789 Date d'inscription   Statut Contributeur Dernière intervention   5 637
 
que répond cette commande
 perl -e 'use POSIX qw(strftime); print strftime("%Y-%m-%d %H:%M:%S\n", localtime)'
0