[gull] cli highlight mise_en_évidence

Félix Hauri felix at f-hauri.ch
Fri Oct 17 22:02:00 CEST 2008


On Fri, Oct 17, 2008 at 03:31:33PM +0200, Cédric Briner wrote:
> Salut,
> 
> je recherche un programme en ligne de commande qui mette en évidence un motif. 
> Un peu comme ce que fait:
> grep --color=auto
> en colorant la partie recherchée, mais sans pour autant supprimer les lignes qui 
> ne contiennent pas le motif.
... comme grep, mais sans enlever? réponse: ``sed''.

sed $'/myregexp/{s/^/\e[47m/;s/$/\e[0m/}'
ou
sed "/myregexp/{s/^/$(tput setb 7)/;s/$/$(tput op)/}"

Soit: Pour toutes les lignes qui contiennent le motif ``myregexp'',
le début de ligne est remplacé par \e[47m et la fin par \e[0m.

La deuxième syntaxe permet d'utiliser termcap pour s'affranchir
du code ansi...

Tu pouvais égallement écrire:

 sed "s/^\\(.*myregexp.*\\)$/$(tput setb 7)\1$(tput op)/"

L'interprétation n'est pas exactement la même,
mais le résultat est identique.

A+.

-- 
 Félix Hauri  -  <felix at f-hauri.ch>  -  http://www.f-hauri.ch



More information about the gull mailing list