IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage Perl Discussion :

redirection de la commande printf vers un fichier


Sujet :

Langage Perl

  1. #1
    Membre habitué
    Inscrit en
    Juillet 2008
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 10
    Par défaut redirection de la commande printf vers un fichier
    Bonjour

    Je suis debutant en perl.
    J'ai un script qui manipule un fichier contenant des valaurs. Je prends donc le fichier en entrée, je voudrais ensuite envoyer le fichier une fois remanié,, ver sun nouveau fichier. voici mon script

    Merci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    #!/usr/bin/env perl
     
    use strict;
    use warnings;
    use POSIX;
     
    #cette fonction sert a convertir le timestamp contenu dans le fichier a traiter
    sub getHDate {
            my %Date = ();
            my ($sec,$min,$hour,$mday,$mon,$year) = localtime(time); 
            $year += 1900;
            $mon += 1;
     
            $Date{second}   = $sec;
            $Date{minute}   = $min;
            $Date{hour}     = $hour;
            $Date{day}      = $mday;
            $Date{month}    = $mon;
            $Date{year}     = $year;
           return %Date;
    }
     
    open( FDESC , "< cmptest" ) or die "Can't open cmptest : $!";
     
    foreach my $line ( readline(*FDESC) ) {
    	my ( $timestamp, $Type, $Purify, $User, $Nb_test, $Test_duration, $Total_exec_time,$Prod )  ;
    	my @Liste = split ( /\s+/ , $line ) ;
    	my $Nb_el = @Liste ;
    	( $timestamp, $Type, $Purify, $User, $Nb_test, $Test_duration, $Total_exec_time, $Prod ) = @Liste ;
    	my $avrg_test_time =  $Test_duration/$Nb_test ;
    	my %now_date = getHDate( $timestamp );
    	my $Date = sprintf ( "%4d-%02d-%02d" , $now_date{year} ,  $now_date{month} , $now_date{day}) ;
    	printf "$Date  $avrg_test_time  $Prod \n";
    }				
    close(FDESC);
    mon but est donc d'envoyer le output du printf dans un fichier

  2. #2
    Membre éprouvé
    Avatar de Jasmine80
    Femme Profil pro
    Bioinformaticienne
    Inscrit en
    Octobre 2006
    Messages
    3 157
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 45
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Bioinformaticienne
    Secteur : Santé

    Informations forums :
    Inscription : Octobre 2006
    Messages : 3 157
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    # ouverture en mode écriture du fichier de sortie (à créer avant de lancer le script)
    open (OUT, '>chemin_vers_fichier.txt');
    my $Date = sprintf ( "%4d-%02d-%02d" , $now_date{year} ,  $now_date{month} , $now_date{day}) ;
    print OUT "$Date  $avrg_test_time  $Prod \n";
    Le printf te permet de formater ta date mais pour écrire dans un fichier un simple print suffi.

  3. #3
    Membre habitué
    Inscrit en
    Juillet 2008
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 10
    Par défaut
    Coucou Jasmine

    Décidement c'est toi qui fait tourner la maison.
    J'ai encore compartimenté les informations. En fait, le sprintf recupere le timestamp et me le convertit en date lisible.
    voici l'output de mon script

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    2008-07-09  0.452930174563591  marco 
    2008-07-09  2.56848852901484  argonref72 
    2008-07-09  0.863501483679525  gsm_siliqua_sibley 
    2008-07-09  1.21896086369771  argonref72 
    2008-07-09  0.531914893617021  pico 
    2008-07-09  0.708229426433915  marco 
    2008-07-09  0.643202815662121  elba 
    2008-07-09  1.2401927047488  keywest 
    2008-07-09  2.65009322560597  umts_r26331 
    2008-07-09  0.562884784520668  elba 
    2008-07-09  1.58289124668435  argonref72
    Je voudrais rediriger tout ça vers un fichier qui porterait le nom de la date. Sans avoir un faire un autre script en sh qui rappel ce script perl et qui fait un >> fichier-date.txt

  4. #4
    Membre habitué
    Inscrit en
    Juillet 2008
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 10
    Par défaut
    Pardon ta soluce est bonne (bien evidement)
    J'ai mis >> au lieu de > pour que la boule n'efface pas le resultat a chaque fois.
    Encore merci
    Si tu passe a Toulouse, Café.

  5. #5
    Membre éprouvé
    Avatar de Jasmine80
    Femme Profil pro
    Bioinformaticienne
    Inscrit en
    Octobre 2006
    Messages
    3 157
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 45
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Bioinformaticienne
    Secteur : Santé

    Informations forums :
    Inscription : Octobre 2006
    Messages : 3 157
    Par défaut
    Café et chocolat ... pourquoi faire les choses à moitié

    Donc tout va comme tu veux maintenant? N'oublie pas de clore ce sujet.

  6. #6
    Membre expérimenté Avatar de CKLN00
    Homme Profil pro
    Bioinformaticien Java/Perl
    Inscrit en
    Avril 2008
    Messages
    210
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Bioinformaticien Java/Perl
    Secteur : Santé

    Informations forums :
    Inscription : Avril 2008
    Messages : 210
    Par défaut
    Citation Envoyé par Jasmine80 Voir le message
    Café et chocolat ... pourquoi faire les choses à moitié :
    haa mais c'est qu'elle se fait payer en nature maintenant !
    ha la la l'entraide entre paires n'est plus ce qu'elle était

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 26/03/2012, 17h02
  2. Redirection de résultat de commande vers un fichier
    Par Julius Cesarus dans le forum Tcl/Tk
    Réponses: 1
    Dernier message: 17/01/2010, 13h17
  3. Redirection d'un select vers un fichier
    Par Perseide dans le forum DB2
    Réponses: 3
    Dernier message: 19/07/2006, 21h49
  4. Réponses: 15
    Dernier message: 14/06/2006, 12h30
  5. Récupérer sortie standard après redirection vers un fichier.
    Par sozie9372 dans le forum Entrée/Sortie
    Réponses: 3
    Dernier message: 22/03/2006, 15h10

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo