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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé

    Inscrit en
    Juin 2005
    Messages
    1 155
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 1 155
    Par défaut awk fichier plat vers csv
    Hello les gens,
    Je dispose d'un fichier plat avec colonne fixe que je voudrais convertir en fichier csv.
    La structure du fichier est ont ne peut plus simple (pas de header ni de footer)
    Je souhaiterais qu'une âme charitable me soumette une commande (awk ?) qui soit aussi simple (je n'y connait pas grand chose au shell) à comprendre que mon fichier
    Je précise que j'ai juste besoin de la commande pour "découper les colonnes" (EDIT: en fait non, pas découper mais récupérer) ne vous tracassez pas avec autre chose.
    Merci pour toutes vos contributions.
    P.S:Avec le mode d'emploi ça serait bien si ce n'est pas trop demander.

  2. #2
    Membre émérite Avatar de jmelyn
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Septembre 2007
    Messages
    703
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Septembre 2007
    Messages : 703
    Par défaut
    Bonjour,

    Si le séparateur est l'espace ' ' et qu'aucun autre n'apparait à l'intérieur des colonnes, alors la commande suivante fonctionne:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    cat fichier_in | tr ' ' ',' > fichier_out

  3. #3
    Membre éprouvé

    Inscrit en
    Juin 2005
    Messages
    1 155
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 1 155
    Par défaut
    Si le séparateur est l'espace ' '
    Tu n'a pas lu mon, post.
    Je dispose d'un fichier plat avec colonne fixe...
    La première colonne partira par exemple de la position 0->18
    La deuxième 22->23
    La troisième 24->38 etc...

  4. #4
    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
    man cut peut-être ?

    prend les 5 premiers caractères de chaque ligne du fichier test.

  5. #5
    Membre expérimenté
    Profil pro
    Architecte de système d'information
    Inscrit en
    Mai 2007
    Messages
    248
    Détails du profil
    Informations personnelles :
    Âge : 72
    Localisation : France

    Informations professionnelles :
    Activité : Architecte de système d'information
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2007
    Messages : 248
    Par défaut
    Citation Envoyé par jadey Voir le message
    Tu n'a pas lu mon, post.

    La première colonne partira par exemple de la position 0->18
    La deuxième 22->23
    La troisième 24->38 etc...

    Que se cache t'il derrière le etc ? L'infini ? Du variable ? Une limite ?

  6. #6
    Membre éprouvé

    Inscrit en
    Juin 2005
    Messages
    1 155
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 1 155
    Par défaut
    Que se cache t'il derrière le etc ? L'infini ? Du variable ? Une limite ?
    C'était pour illustrer qu'il y a plusieurs colonnes mais à la fin d'une ligne il y a un retour chariot
    cut -c1-5 test
    Oups.. c'est une très bonne solution mais je t'ai induit en erreur. Voir "EDIT" du premier post. Il me faudrait quelque chose de similaire mais qui laisse le fichier initial intact.

  7. #7
    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
    ?!

    Ben cut ne découpe pas le fichier lui même hein, comme tous les outils, il affiche le résultat de son opération sur la sortie standard.

    Exemple (crados):
    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
    $ cat test
    TOTO TOTO       3       EUROS
    TURLUTUTU     142,0     SCHMILBLIKS
    TSOINTSOIN   1249,123   BROUZOUFS
    $ cat test2.ksh
    #!/usr/bin/ksh
     
    while read ligne
    do
            echo `echo "$ligne" | cut -c1-12`';'`echo "$ligne" | cut -c13-24`';'`echo "$ligne" | cut -c24-37`
    done < test
    $ ./test2.ksh
    TOTO TOTO ; 3 ; EUROS
    TURLUTUTU ; 142,0 ; SCHMILBLIKS
    TSOINTSOIN ; 1249,123 ; BROUZOUFS

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

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, 17h47
  2. Réponses: 2
    Dernier message: 20/08/2007, 14h36
  3. [XML] fichier plat vers xml
    Par jasminrose dans le forum APIs
    Réponses: 22
    Dernier message: 16/04/2007, 17h37
  4. Conversion fichier plat vers CSV
    Par linar009 dans le forum Shell et commandes GNU
    Réponses: 5
    Dernier message: 23/11/2006, 13h35
  5. Importation fichier plat vers Mysql
    Par xender dans le forum Requêtes
    Réponses: 3
    Dernier message: 09/05/2006, 22h36

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