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

Shell et commandes GNU Discussion :

awk fichier plat vers csv


Sujet :

Shell et commandes GNU

  1. #21
    Membre Expert
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    792
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2004
    Messages : 792
    Par défaut
    Avec mon gawk (GNU awk) ça donne:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SSFSSL_9999;TOT     ;SSL_0112; ;XXXX;I2410060;0000000082;0000028830;0000006879;20090924;10060193;20090924;10171820;20090924;10171946;000001;NPROTSSL1;iasadmin;76;00512;U15;\\MOMOKUIYP111\exploit\0112\XXX\XXX_TOT_0112_23092009.txt;        ;        ;
    SSFSSL_9999;TOT     ;SSL_0118;R;YYYY;I2410064;0000000008;0000002190;0000002190;20090924;10060195;20090924;10195857;20090924;10195918;000000;NPROTSSL1;iasadmin;00;00512;U00;\\MOMOKUIYP111\exploit\0118\YYY\XXX_VBV_0118_23092009.txt;SSL_9999;BIDULAGE;
    Si tu n'as pas ce résultat, c'est que tu n'as pas gawk. Tu peux alors essayer un pis-aller avec substr():
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    BEGIN{
      offset=1
      fieldwidths="11 1 8 1 8 17 1 15 4 14 8 1 10 1 10 1 10 1 8 1 8 1 8 1 8 1 8 1 8 1 6 1 9 1 8 24 2 1 5 1 3 1 57 89 8 41 8 71"
      n=split(fieldwidths, f, " ")
    }
     
    {
      for(i=1;i<=n;i++){
        if (i%2) printf substr($0, offset, f[i]) ";"
        offset+=f[i]
      }
      print ""
      offset=1
    }
    Même résultat en sortie qu'avec gawk. Mais en moins véloce d'après des tests que j'ai faits sur d'autres fichiers.

    Fais un man awk pour voir comment afficher ta version. Mais si FIELDWIDTHS ne fonctionne pas tu dois avoir, au mieux nawk, au pire le awk original.

  2. #22
    Membre éprouvé

    Inscrit en
    Juin 2005
    Messages
    1 155
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 1 155
    Par défaut
    J'ai fais un et ça me répond par:
    conversion specification (%c). The Redirection and Expression parameters
    For the c conversion specification: if the argument has a numeric value, the
    There are no explicit conversions between numbers and strings. To force an

    C'est pas grave vu que ta solution avec printf est parfaite. Je te remercie bcp ainsi que tout ceux ayant participé à la discussion!!!

  3. #23
    Membre très actif

    Homme Profil pro
    Responsable projets techniques
    Inscrit en
    Février 2003
    Messages
    980
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Responsable projets techniques
    Secteur : Biens de consommation

    Informations forums :
    Inscription : Février 2003
    Messages : 980
    Par défaut
    Ouais, vaut mieux poster sur le bon forum Pour AIX, éviter de poster sur le forum Linux : il n'y a presque jamais touts les options bien pratiques des outils GNU !

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

Discussions similaires

  1. Exporter fichier XLS vers CSV
    Par arnaud_verlaine dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 10/09/2007, 18h47
  2. Réponses: 2
    Dernier message: 20/08/2007, 15h36
  3. [XML] fichier plat vers xml
    Par jasminrose dans le forum APIs
    Réponses: 22
    Dernier message: 16/04/2007, 18h37
  4. Conversion fichier plat vers CSV
    Par linar009 dans le forum Shell et commandes GNU
    Réponses: 5
    Dernier message: 23/11/2006, 14h35
  5. Importation fichier plat vers Mysql
    Par xender dans le forum Requêtes
    Réponses: 3
    Dernier message: 09/05/2006, 23h36

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