[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