Bash : colorier un peu la sortie stdout ?
isidorus
-
dubcek Messages postés 18627 Date d'inscription Statut Contributeur Dernière intervention -
dubcek Messages postés 18627 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
Voilà, j'ai plusieurs programme qui se lance à la suite et ça affiche pleine de chose à l'ecran et je suis noyé. J'ai besoin de visualiser un partie de la reponse d'un programme plus clairement en mettant seulement cette partie en couleur, après libre à moi de consulter le reste ou non.
je compte essayer quelque chose comme ça (sed \1=backreference):
Qu'en pensez vous ? y a t il une autre(meilleur) solution ? peut on eviter de creer le fichier temporaire temp ?
Merci
PS : je suis sous solaris et pas au boulot alors, c'est meme pas sur que les possibilité de tail et sed ont ces options.
Voilà, j'ai plusieurs programme qui se lance à la suite et ça affiche pleine de chose à l'ecran et je suis noyé. J'ai besoin de visualiser un partie de la reponse d'un programme plus clairement en mettant seulement cette partie en couleur, après libre à moi de consulter le reste ou non.
je compte essayer quelque chose comme ça (sed \1=backreference):
program1 program2 >temp & tail -f temp --pid=$! | sed 's /(chaine1.*chaine2)/<color>\1</color>/' program3
Qu'en pensez vous ? y a t il une autre(meilleur) solution ? peut on eviter de creer le fichier temporaire temp ?
Merci
PS : je suis sous solaris et pas au boulot alors, c'est meme pas sur que les possibilité de tail et sed ont ces options.
3 réponses
-
salut,
pourquoi program2 doit-il être en arrière plan ?
ne peux-tu l'exécuter en dernier?
program2 | sed ...
N'y a-t-il qu'une partie de la sortie de program2 que tu veux colorer ?
Sinonprintf "\033[${coulAv};${coulAr}m" program2 printf '\033m' -
l'ordre de lancement des 'program' ne doit pas etre changer.
program2 | sed ... implique que sed sera appliqué à la fin de program2 au lieu que ça se fasse au fur et à mesure de l'affichage à l'ecran
c'est une partie de la sortie de program2, que je veux colorer
bon, sous solaris tail n'a pas l'option "--pid" :( -
hllo
essayerred=$(tput setaf 1); bw=$(tput setaf 0) program1 program2 | awk -v r="$red" -v bw="$bw" '{print r $0 bw}' program3