::  Posts  ::  RSS  ::  ◂◂RSS  ::  Contact

Colored grep

January 19th, 2009
shell, programming

I figured out some cool stuff I can do with colored grep. I often want to, when grepping, see the bit that matched in a different color. I knew grep --color would do this, but I'd wanted to be able to do this with multiple greps and multiple colors. Then I noticed the GREP_COLOR environment variable and the grep --color=always options. So I made the aliases:

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"
These let me do things like:
user@host /path/to/cwd $ echo hello there | blue_grep ll | yellow_grep ere
hello there
The primary use for me is when I want to look for something and don't really know what it is yet. Often this will include wanting to find things that are near each other, but I'm not sure how near. The color helps immensely with visual grepping.

The main downside to this method is that I have to specify the color. What I really want to have is something where multiple calls to color grep in the same pipe automagically use different colors.

Update 2012-09-25: If you want to just highlight things in the output, you can run these with a -C 10000 argument. Or define some more commands:

alias highlight-grey="grey-grep -C 10000"
alias highlight-red="red-grep -C 10000"
I've found multiple colors too much work, though, and so just have:
alias highlight="grep --color=always -C 10000"

Comment via: facebook

More Posts:

Older Post:

Newer Post:


  ::  Posts  ::  RSS  ::  ◂◂RSS  ::  Contact