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

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 65
    Points : 29
    Points
    29
    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 éprouvé
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    792
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2004
    Messages : 792
    Points : 1 206
    Points
    1 206
    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.
    :q :q! :wq :w :w! :wq! :quit :quit! :help help helpquit quit quithelp
    :quitplease :quitnow :leave :shit ^X^C ^C ^D ^Z ^Q QUITDAMMIT
    Jabber: ripat at im.apinc.org

  3. #3
    Membre éclairé 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 : 60
    Localisation : France

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

    Informations forums :
    Inscription : Septembre 2007
    Messages : 703
    Points : 823
    Points
    823
    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
    Un problème bien posé est déjà résolu (H. Bergson).

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

    Informations forums :
    Inscription : Juin 2008
    Messages : 65
    Points : 29
    Points
    29
    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 éclairé 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 : 60
    Localisation : France

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

    Informations forums :
    Inscription : Septembre 2007
    Messages : 703
    Points : 823
    Points
    823
    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 ""}'
    Un problème bien posé est déjà résolu (H. Bergson).

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

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

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

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

    Informations forums :
    Inscription : Mai 2007
    Messages : 248
    Points : 289
    Points
    289
    Par défaut
    par contre je vois ca:
    Un peu dangereux....

  8. #8
    Membre éclairé 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 : 60
    Localisation : France

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

    Informations forums :
    Inscription : Septembre 2007
    Messages : 703
    Points : 823
    Points
    823
    Par défaut
    J'ecris depuis le fin fond de l'Espagne, et je ne sais pas configurer le clavier avec lettres mortes dans Windows. Donc pas d'accents.

    La destruction du fichier chkconfig.log n'est pas un mal en soit puisque c'est un fichier temporaire de travail. Par contre les options ne sont pas adaptees: rm chkconfig.log est suffisant. On ne sait pas que c'est un fichier temporaire, chkconfig.tmp serait un nom plus avise. Enfin, il n'y a carrement pas besoin de fichier temporaire puisque le traitement des donnees est effectue en une seule passe. Donc commande rm parfaitement inutile.
    Un problème bien posé est déjà résolu (H. Bergson).

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