grep - highlight inside a highlight

6,295

You haven't hit a wall, but you've hit a |! (So unfortunately, no, you cannot do that without a major re-write of the grep source code.)

However, I like the idea, so if you want, feel free to file a bug at the FSF, or if you don't want to go through the effort, I'll file the bug for you! (just drop a comment)


Fantastic question! I've already added:

alias grey-grep="GREP_COLOR='1;30' grep --color=always"
alias red-grep="GREP_COLOR='1;31' grep --color=always"
alias green-grep="GREP_COLOR='1;32' grep --color=always"
alias yellow-grep="GREP_COLOR='1;33' grep --color=always"
alias blue-grep="GREP_COLOR='1;34' grep --color=always"
alias magenta-grep="GREP_COLOR='1;35' grep --color=always"
alias cyan-grep="GREP_COLOR='1;36' grep --color=always"
alias white-grep="GREP_COLOR='1;37' grep --color=always"

to my bash.bashrc file!

Share:
6,295

Related videos on Youtube

iR0Nic
Author by

iR0Nic

Updated on September 18, 2022

Comments

  • iR0Nic
    iR0Nic over 1 year

    I'm facing difficulties while trying to multicolor-highlight matches using grep's color environment.

    After I stumbled across Colored grep, I found it very useful to highlight multiple pattern in a single run. So I set up the alias' as told, but then I came across following problem:

    echo "Im looking for KeyWords" | grep 'KeyWords' --color=always | green-grep 'Word'
    

    results in

    Im looking for Key Words (italic=red, bold=green)

    where the "s" is not highlighted red, because grep sets the color environment back to normal after the end of a match.

    Is there any way to realize this with grep, or am I facing a wall?