Subject: Re: bug#30686: How to color matched region but also show the nearby context noncolored in characters or words?

From: Bob Proulx <[email-masked]>
Date: Sat, 3 Mar 2018 18:26:28 -0700

tags 30686 + notabug
thanks

Peng Yu wrote:
> I am looking for a feature similar to -A -B -C but not based on lines,
> but based on characters or even words. Is it possible with the current
> version of grep?
>
> In the following example, I'd like to show the matched region as well
> as 3 characters before and after it. But the 3 characters before and
> after the match is also showed.
> 
> grep --color -o -P '.{0,3}a.{0,3}' <<< '+++++++++++++++++a++++++++++++++++++++'

Those three characters before and after as you say are also part of
the pattern and are also part of the match.  If you want to then only
color a subset in a second grep you can always do that.

  grep -o -P '.{0,3}a.{0,3}' <<< '+++++++++++++++++a++++++++++++++++++++' | grep --color 'a'
  +++a+++
     ^ only the 'a' is highlighted

Bob