02 August 2010

Colorful grep

This simple article describes how to make grep command highlight results with custom color without using --color option. 1. In ~/.bashrc find the following lines and uncomment them: if [ -f ~/.bash_aliases ]; then . ~/.bash_aliases fi 2. In ~/.bash_aliases add line: alias grep='grep --color' 3. Append the following line in ~/.bashrc: export GREP_COLOR=';33m' Here ';33m' is yellow foreground color for matched symbols in grep results. Now you can invoke grep without --color option, and results are highlighted with custom color. The color codes are available e.g. here You can compose a bash script like #!/bin/bash # # This file echoes a bunch of color codes to the # terminal to demonstrate what's available. Each # line is the color code of one forground color, # out of 17 (default + 16 escapes), followed by a # test use of that color on all nine background # colors (default + 8 escapes). # T='gYw' # The test text echo -e "\n 40m 41m 42m 43m\ 44m 45m 46m 47m"; for FGs in ' m' ' 1m' ' 30m' '1;30m' ' 31m' '1;31m' ' 32m' \ '1;32m' ' 33m' '1;33m' ' 34m' '1;34m' ' 35m' '1;35m' \ ' 36m' '1;36m' ' 37m' '1;37m'; do FG=${FGs// /} echo -en " $FGs \033[$FG $T " for BG in 40m 41m 42m 43m 44m 45m 46m 47m; do echo -en "$EINS \033[$FG\033[$BG $T \033[0m"; done echo; done echo for reference.

Related info

"Colorizing" Scripts: http://tldp.org/LDP/abs/html/colorizing.html