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 :

affichage par colonne


Sujet :

Shell et commandes GNU

  1. #1
    Membre éclairé
    Inscrit en
    Mars 2006
    Messages
    624
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 624
    Par défaut affichage par colonne
    Bonjour,

    J'ai plusieurs lignes dans un fichier
    totototot
    tata
    pppppp
    oiiiiiii

    je veux rajouter une variable suppleméntaire à la fin de chaque ligne de ce fichier, mais que les colonnes soit bien alignés, comme l'exemple suivant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    totototot     N
    tata          N
    pppppp        P
    oiiiiiii      N
    comment faire, je dirais bien la commande printf !!!

  2. #2
    Rédacteur/Modérateur
    Avatar de Winnt
    Homme Profil pro
    budget et contrôle de gestion
    Inscrit en
    Décembre 2006
    Messages
    1 978
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France

    Informations professionnelles :
    Activité : budget et contrôle de gestion
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 978
    Par défaut
    Salut,

    Je testerais cela :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sed -i "s/ /\\t/g" fichier
    Winnt
    Merci de lire les règles du forum LaTeX et Qu'est ce qu'un ECM ?.
    N'hésitez pas à parcourir la FAQ la réponse y est peut-être déjà.
    Pensez au bouton si votre problème est résolu.


    C'est en Linuxant qu'on devient .... geek
    Et c'est en LateXant qu'on devient flemmard
    Mon blog tout neuf.
    Articles : présentation de la distribution Gentoo, Les index sous LaTeX et leur personnalisation.

  3. #3
    Membre éclairé
    Inscrit en
    Mars 2006
    Messages
    624
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 624
    Par défaut
    ça ne semble pas correspondre à mon besoin.

    si par exemple :
    ColA Colb
    toto O
    tatat N

    je veux que ma colonne B soit toujours aligné, meme si ma colonne A varie. Ma colonne A peut avoir un maximum de 10 caractéres.

    exemple

    totoooo______O
    tata_________N
    titi__________O

  4. #4
    Modérateur
    Avatar de gangsoleil
    Homme Profil pro
    Manager / Cyber Sécurité
    Inscrit en
    Mai 2004
    Messages
    10 150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Manager / Cyber Sécurité

    Informations forums :
    Inscription : Mai 2004
    Messages : 10 150
    Par défaut
    Bonjour,

    Je pense que tu n'as pas d'autre choix que de compter le nombre de caractere dans une ligne (commande wc) , puis d'ajouter le complement, par exemple avec sed ou un truc du genre.
    "La route est longue, mais le chemin est libre" -- https://framasoft.org/
    Les règles du forum

  5. #5
    Membre Expert
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2008
    Messages
    1 515
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 515
    Par défaut
    C'est quand même plus simple d'utiliser printf :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    while read line; do printf "%-20s%s\n" $line N; done < ton_fichier

  6. #6
    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 : 62
    Localisation : France

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

    Informations forums :
    Inscription : Septembre 2007
    Messages : 703
    Par défaut
    Oui mais, oui mais...

    On ne connait pas la taille du premier champ, alors 20 caractères c'est peut-être trop, ou trop peu. Je propose donc quelque chose qui s'adapte, quelle que soit la taille max que prend le premier champ. Pour simplifier, je suppose que les deux champs sont déjà présents dans le fichier fichier_entree:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    toto 1
    qwerty 2
    abcdefghij 3
    12345678901234567890 4
    z 5
    Pour séparer les deux champs, il y a un ou plusieurs espaces ou tab, peu importe.
    Et voici le code, en deux commandes:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    taille=$(awk '{l=length($1); t=l>t?l:t} END {print t}' fichier_entree)
    awk -v t=$taille '{f="%s%" t+3-length($1) "s\n"; printf f, $1, $2}' fichier_entree > fichier_sortie
    Explications:

    • La première commande recherche dans le fichier, sur la première colonne, le plus long mot.
    • La seconde commande crée une variable f (format) pour formatter chaque ligne du fichier, notamment en calculant le nombre d'espaces entre les deux champs: taille_max + 3 - longueur_courante.

    Et on obtient, dans fichier_sortie, ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    toto                  1
    qwerty                2
    abcdefghij            3
    12345678901234567890  4
    z                     5

Discussions similaires

  1. Affichage "grouper par colonne"
    Par gracouille dans le forum SharePoint
    Réponses: 0
    Dernier message: 27/05/2008, 17h30
  2. problème affichage par colonne (listview)
    Par skysee dans le forum C#
    Réponses: 2
    Dernier message: 19/09/2007, 13h32
  3. affichage de colonnes par la jonture des tables
    Par pinokio dans le forum Langage SQL
    Réponses: 1
    Dernier message: 24/04/2007, 09h27
  4. Affichage par colonne
    Par Louison dans le forum Langage SQL
    Réponses: 5
    Dernier message: 12/02/2007, 17h34
  5. affichage colonne par colonne
    Par tjoce dans le forum Langage
    Réponses: 1
    Dernier message: 02/11/2005, 19h19

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