[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Highlighting CLI output: what are these terms called?

On Wed, Apr 17, 2013 at 8:17 PM, Bob Proulx <bob@proulx.com> wrote:
> The only regexp replacement in the right hand side is "$&".  The
> perlre docs say:
>    man perlre
>        $& returns the entire matched string.  (At one point $0 did
>        also, but now it returns the name of the program.)
> This comes from use in 'sed'.  In sed the docs say:
>    man sed
>    s/regexp/replacement/
>        Attempt to match regexp against the pattern space.  If
>        successful, replace that portion matched with replacement.  The
>        replacement may contain the special character & to refer to
>        that portion of the pattern space which matched, and the
>        special escapes \1 through \9 to refer to the corresponding
>        matching sub-expressions in the regexp.
> And can be used like this:
>   $ echo fore | sed 's/fore/be&/'
>   before
> All of the \e [ (escape bracket) patterns are terminal escape sequence
> colors as the others mentioned.  Personally I find using them like
> that annoying since they are non-portable.  It would be better to use
> 'tput' to generate those from the terminfo data instead.
>> tail -f file.log | perl -pe 's/keyword/\e[1;31;43m$&\e[0m/g'
> Instead of that I would be inclined to use grep's --color option.
> Same thing but easier to type and remember.
>   tail -f file.log | grep --color keyword

Thank you Bob. I like how you get to the source (sed) and to the
problem (use grep). Very informative, and I'll be reading this post a
few times over.

Dotan Cohen


Reply to: