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

Colored grep

January 19th, 2009
programming, shell  [html]
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

Recent posts on blogs I like:

Circumferential Lines and Express Service

In a number of large cities with both radial and circumferential urban rail service, there is a curious observation: there is express service on the radial lines, but not the circumferential ones. These cities include New York, Paris, and Berlin, and to s…

via Pedestrian Observations September 15, 2019

Reframing the evolutionary benefit of sex

From the perspective of an organism trying to propagate its genes, sex is like a trade: I’ll put half of your DNA in my offspring if you put half of my DNA in yours. I still pass one copy of my genes onto the next generation per unit of investment in chil…

via The sideways view September 14, 2019

Bear store

A preschool game that’s been particularly popular and versatile with my kids. Materials: Pennies Collection of counting bears or any other small objects One person is the storekeeper and sets out the bears in any way they want. The other people are custom…

via The whole sky September 9, 2019

more     (via openring)

More Posts:


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