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 :

Transformation lignes colonnes


Sujet :

Shell et commandes GNU

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Homme Profil pro
    Architecte technique
    Inscrit en
    Octobre 2013
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2013
    Messages : 7
    Par défaut Transformation lignes colonnes
    Bonjour à tous,

    J'essaie de transformer le format suivant en tableau (csv) sans parvenir à trouver la bonne combinaison ; awk, sed,... tout y est passé mais en vain.

    Exemple :

    table{
    Nom=TOTO
    Prenom=TITI
    Age=23
    Niveau=A
    Etage=2
    Tel=111111111
    }
    
    table{
    Nom=KOKO
    Prenom=KIKI
    Age=27
    Niveau=B
    Etage=5
    }
    etc..

    A transformer en :

    Nom;Prénom;Age;Niveau;Etage;tél
    TOTO;TITI;23;A;2;111111111
    KOKO;KIKI;27;B;5;;
    .....etc.
    Je précise qu'il n'y a pas forcément le même nombre de champs (comme par exemple, le tél qui n'apparait pas dans la seconde table.

    Merci à tous pour votre aide.

    Cordialement

  2. #2
    Membre du Club
    Homme Profil pro
    Architecte technique
    Inscrit en
    Octobre 2013
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2013
    Messages : 7
    Par défaut Transformation lignes colonnes
    Ok, j'ai pu régler mon soucis.

  3. #3
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 660
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 660
    Par défaut
    c'est beau l'esprit de partage...
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  4. #4
    Responsable Systèmes


    Homme Profil pro
    Gestion de parcs informatique
    Inscrit en
    Août 2011
    Messages
    18 264
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Gestion de parcs informatique
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Août 2011
    Messages : 18 264
    Par défaut et la solution
    Tant mieux pour toi. C'est quoi ce format ? c'est normalisé ?

    J'ai essayé hier soir, mais n'ai pas répondu car résultat non opérationnel.
    Je suis parti vers une transformation XML.
    Ma page sur developpez.com : http://chrtophe.developpez.com/ (avec mes articles)
    Mon article sur le P2V, mon article sur le cloud
    Consultez nos FAQ : Windows, Linux, Virtualisation

  5. #5
    Membre du Club
    Homme Profil pro
    Architecte technique
    Inscrit en
    Octobre 2013
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2013
    Messages : 7
    Par défaut Transformation lignes colonnes
    Ne me jugez pas trop vite; il était tard et je ne voulais pas occuper quelqu'un inutilement alors que j'avais pu résoudre mon problème.

    J'ai, d'abord, enlevé le superflu ; un coup de "grep -v" pour enlever les lignes avec accolades et un coup de awk pour n'afficher que les valeurs des champs.

    Ce qui donne (des blocs séparés par des lignes vides) :

    TOTO
    TITI
    23
    A
    2
    111111111
    
    KOKO
    KIKI
    27
    B
    5
    
    etc...
    puis :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    cat fichier|tr "\n" ";" | sed 's/;;/\n/g'
    pour sortir le tableau.

    Il y a certainement mieux à faire avec une commande unique mais je manque de temps pour la chercher.


    On peut retrouver ce genre de format sous nagios, par exemple.

    A+

  6. #6
    Expert confirmé

    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    1 946
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 1 946
    Par défaut
    Salut,

    Un poil trop tard mais bon...

    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
    $ cat plop 
    table{
    Nom=TOTO
    Prenom=TITI
    Age=23
    Niveau=A
    Etage=2
    Tel=111111111
    }
     
    table{
    Nom=KOKO
    Prenom=KIKI
    Age=27
    Niveau=B
    Etage=5
    }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $ sed -n '/table{/{n;:z;N;/}$/!bz;s/\n}//;s/.*=//Mg;s/\n/;/gp}' plop 
    TOTO;TITI;23;A;2;111111111
    KOKO;KIKI;27;B;5

  7. #7
    Expert confirmé Avatar de disedorgue
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Décembre 2012
    Messages
    4 349
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Décembre 2012
    Messages : 4 349
    Par défaut
    Citation Envoyé par abcd2013 Voir le message
    Ne me jugez pas trop vite; il était tard et je ne voulais pas occuper quelqu'un inutilement alors que j'avais pu résoudre mon problème.

    J'ai, d'abord, enlevé le superflu ; un coup de "grep -v" pour enlever les lignes avec accolades et un coup de awk pour n'afficher que les valeurs des champs.

    Ce qui donne (des blocs séparés par des lignes vides) :

    TOTO
    TITI
    23
    A
    2
    111111111

    KOKO
    KIKI
    27
    B
    5

    etc...

    puis : cat fichier|tr "\n" ";" | sed 's/;;/\n/g'

    pour sortir le tableau.

    Il y a certainement mieux à faire avec une commande unique mais je manque de temps pour la chercher.


    On peut retrouver ce genre de format sous nagios, par exemple.

    A+
    Bonjour,
    Et les champs manquants, tu les gères comment car selon ton message initial, la difficulté était plus là ?

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

Discussions similaires

  1. Transformer des colonnes en lignes
    Par marman dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 23/11/2006, 17h43
  2. Transformer ligne en colonne
    Par delphine_lep dans le forum Langage SQL
    Réponses: 2
    Dernier message: 03/10/2006, 14h15
  3. transformation lignes en colonne
    Par marti dans le forum Langage SQL
    Réponses: 5
    Dernier message: 16/06/2006, 17h13
  4. Requête : Transformer lignes en colonnes
    Par bleu_ciel dans le forum Access
    Réponses: 6
    Dernier message: 27/05/2006, 21h26
  5. transformer des colonnes en lignes
    Par flonardi dans le forum Oracle
    Réponses: 13
    Dernier message: 28/10/2004, 12h43

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