[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

http://gibberish.co.il
http://what-is-what.com


Reply to: