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 :

Transformer une longue colonne en deux colonnes


Sujet :

Shell et commandes GNU

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 65
    Par défaut Transformer une longue colonne en deux colonnes
    bonjour,

    j'ai une liste comme celle ci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    blabla : zefz
    zerzfrf : zerfzer
    zerazre: zerzerz
    zeerz: fsdgsdfg
    [...]
    et j'aimerai la transformer comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    blabla : zefz                 zerzfrf : zerfzer
    zerazre: zerzerz              zeerz: fsdgsdfg
    [...]
    la couper en deux pour une meilleur lisibilité en faites

    une idée ?

  2. #2
    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
    Dans quel contexte? Cette liste est-elle générée en sortie d'un script? Est-elle contenue dans un fichier?

    Dans ce dernier cas, une solution possible avec awk:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $ awk 'NR%2{a=$0} !(NR%2){printf "%-20s%s\n", a, $0;a=""}END{print a}' fichier
    blabla : zefz       zerzfrf : zerfzer
    zerazre: zerzerz    zeerz: fsdgsdfg
    Sinon, tu peux reprendre le format du printf et l'inclure dans le script qui génère la liste en "bufférisant" une ligne sur deux.

  3. #3
    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
    Une solution similaire à ripat:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    awk '{printf "%-20s", $0; if (NR%2 == 0) print ""}' fichier

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 65
    Par défaut
    pas mal du tout ton truc par contre pas simple a comprendre

    voila le contexte de la chose :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    chkconfig --list | awk -F " " '{print $1 $5}' | sed 's/3:/ : /g' >> chkconfig.log
    awk 'NR%2{a=$0} !(NR%2){printf "%-20s%s\n", a, $0;a=""}END{print a}' chkconfig.log >> rapport.log
    rm -rf chkconfig.log
    ça fait quelques bug d'affichage :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    readahead_early : onreadahead_later : off
    wpa_supplicant : offypbind : off
    en gros ça bug qu'avec les services dont le nom est plus long

  5. #5
    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
    En gros, c'est quelque chose comme ceci, non?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    chkconfig --list | awk '{printf "%-20s%-4s\t", $1, substr($5, 3); if (NR%2 == 0) print ""}'

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 65
    Par défaut
    la c'est la perfection au masculin merci

Discussions similaires

  1. [2.x] une clé primaire sur deux colonnes = Notice: Undefined offset: 0
    Par symfony_dev dans le forum Symfony
    Réponses: 0
    Dernier message: 16/04/2012, 22h18
  2. Passez d'une matrice à un tableau à deux colonnes
    Par Runsh63 dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 08/04/2011, 12h15
  3. Réponses: 5
    Dernier message: 19/10/2009, 10h41
  4. comment ajouter une colonne entre deux colonne automatiquement
    Par nabilophone11 dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 16/06/2008, 11h42
  5. resultat d'une colonne en deux colonne
    Par Challenger dans le forum Langage SQL
    Réponses: 3
    Dernier message: 03/11/2005, 08h23

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