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 :

Coloriser une colone


Sujet :

Shell et commandes GNU

  1. #1
    Membre éclairé
    Inscrit en
    Juin 2006
    Messages
    570
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 570
    Par défaut Coloriser une colone
    Bonjour,

    Une de mes commandes renvoie un tableau, et j'aimerais pouvoir coloriser le premier mot de chaque ligne que me retourne cette commande, mais je ne vois pas comment faire. Quelqu'un a une idée ?

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

    Informations forums :
    Inscription : Février 2008
    Messages : 7 665
    Par défaut
    Bonjour,

    la description est vague, je le serai aussi :
    en utilisant les codes d'échappement ANSI
    ...
    ?
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  3. #3
    Membre expérimenté Avatar de FRUiT
    Homme Profil pro
    Inscrit en
    Février 2011
    Messages
    83
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2011
    Messages : 83
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo "$tableau" | awk '{ $1="\033[31m"$1"\033[m"; print }'
    Comme ça par exemple ?

  4. #4
    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,

    Ou en utilisant un subterfuge comme "egrep" et son option "--color" :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $ echo -e "A B C D E\nA B C D E\nA B C D E\nA B C D E" |egrep  --color '^[^ ]*'
    A B C D E
    A B C D E
    A B C D E
    A B C D E
    $
    Penser à adapter en fonction du séparateur de champs

  5. #5
    Membre éclairé
    Inscrit en
    Juin 2006
    Messages
    570
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 570
    Par défaut
    Merci beaucoup !
    Alors ca marche sauf que le texte que j'affiche normalement possède déjà des couleurs qui sont maintenant effacée

    En fait je me complique peut être, ce que je veux est effectuer une suite de grep et grep -v qui me supprime toute sorte de fichiers que je ne veux jamais. La commande marche, mais je perds la coloration du nom des fichiers.

  6. #6
    Membre expérimenté Avatar de FRUiT
    Homme Profil pro
    Inscrit en
    Février 2011
    Messages
    83
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2011
    Messages : 83
    Par défaut
    Ben recolore le de la même manière. Exemple si c'est le champs 2 :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo "$tableau" | awk '{ $1="\033[31m"$1"\033[m"; $2="\033[35m"$2"\033[m"; print }'
    Et si le reste de la ligne doit être coloré (exemple avec du vert) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo "$tableau" | awk '{ $1="\033[31m"$1"\033[m"; $2="\033[35m"$2"\033[32m"; print }'
    Etc...

  7. #7
    Membre éclairé
    Inscrit en
    Juin 2006
    Messages
    570
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 570
    Par défaut
    Malheuresement je ne peux pas, ce n'est pas une coloration de colone, mais bien un mot/phrase précis à chaque fois (le resultat d un grep --color en fait).

  8. #8
    Membre expérimenté Avatar de FRUiT
    Homme Profil pro
    Inscrit en
    Février 2011
    Messages
    83
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2011
    Messages : 83
    Par défaut
    Dans ce cas tu peux peut-être faire le awk avant ton grep --color.

    En tout cas comme le disait fort justement N_BaH un minimum de précision ne ferait pas de mal, comme par exemple la commande que tu utilises (entière) ainsi qu'un exemple de ce qui sort. Merci.

  9. #9
    Membre expérimenté Avatar de FRUiT
    Homme Profil pro
    Inscrit en
    Février 2011
    Messages
    83
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2011
    Messages : 83
    Par défaut
    En admettant que le pattern que tu cherches soit dans la variable '$pattern', tu peux recolorer cette expression avec awk a posteriori.

    Exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    pattern="sda"
    dmesg | grep $pattern | \
    awk -vP="$pattern" '{ $1="\033[31m"$1"\033[m"; gsub(P,"\033[32m"P"\033[m"); print }'
    Et, bon, j'ai mis un grep parce que tu l'utilises mais dans cet exemple il n'y en a même pas besoin. C'est pour ça que ce serait bien de voir un peu ta "suite de grep / grep -v"...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    pattern="sda"
    dmesg | \
    awk -vP="$pattern" '/'"$pattern"'/ { $1="\033[31m"$1"\033[m"; gsub(P,"\033[32m"P"\033[m"); print }'

  10. #10
    Membre éclairé
    Inscrit en
    Juin 2006
    Messages
    570
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 570
    Par défaut
    Merci bien je vais essayer ca !

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

Discussions similaires

  1. Rajouter les numéros de ligne dans une colone d'une requete
    Par AntiSAL dans le forum MS SQL Server
    Réponses: 7
    Dernier message: 02/11/2005, 19h07
  2. coloriser une ligne sur deux
    Par the0livier dans le forum Langage
    Réponses: 3
    Dernier message: 12/09/2005, 10h54
  3. Affecter une valleur sur une colone d'un DBGRID
    Par richard038 dans le forum Bases de données
    Réponses: 4
    Dernier message: 03/09/2005, 15h20
  4. Ajouter la contrainte NOT NULL a une colone [Firebird 1.5]
    Par crocodingo dans le forum Langage SQL
    Réponses: 2
    Dernier message: 31/01/2004, 18h52
  5. [RICHEDIT] -> Coloriser une syntaxe ?
    Par MaTHieU_ dans le forum C++Builder
    Réponses: 6
    Dernier message: 18/01/2004, 12h57

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