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

From: [email-masked] (GNU bug Tracking System)
Date: Sun, 04 Mar 2018 01:27:02 +0000

Your bug report

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

which was filed against the grep package, has been closed.

The explanation is attached below, along with your original report.
If you require more details, please reply to [email-masked].

-- 
30686: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=30686
GNU Bug Tracking System
Contact [email-masked] with problems

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]>
To: Peng Yu <[email-masked]>
Cc: [email-masked]
Date: Sat, 3 Mar 2018 18:26:28 -0700
List-Id: <debbugs-submit.debbugs.gnu.org>

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

Subject: How to color matched region but also show the nearby context noncolored in characters or words?
From: Peng Yu <[email-masked]>
To: [email-masked]
Date: Fri, 2 Mar 2018 22:04:01 -0600
List-Id: <debbugs-submit.debbugs.gnu.org>

Hi,

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++++++++++++++++++++'

-- 
Regards,
Peng