Because I'm lazy.... any time I want to use grep, I want it to be grep -n --colour. Is there a way to permanantly map this?
4 Answers
In your $HOME/.bashrc file, add:
export GREP_OPTIONS="-n --color"
This will work with egrep too and in aliases that use grep.
Update: GREP_OPTIONS is deprecated from grep 2.21 on and if you use this solution you will see the following warning:
grep: warning: GREP_OPTIONS is deprecated; please use an alias or script
The best solution is to therefore follow maco's advice in his answer. Or switch to using ag, which outputs in color by default.
- 964
Edit ~/.bash_aliases Add a line that says:
alias grep='grep -n --color'
~/.bash_aliases is automatically included by ~/.bashrc if it exists
- 16,132
you can modify the file .bashrc located in your home directory defining an alias, which will override any default setting:
alias grep='grep -n --color'
after the change close and open the terminal again because the file is read only when you open the terminal.
If you take a look on the file .bashrc you will found more default aliases like:
alias ll='ls -l'
alias la='ls -A'
alias l='ls -CF'
Create a script in addition to an alias mentioned in the other answers. An alias by itself won't always work, and a script layer is fast enough for human readable output anyways.
Choose a short name, like cgrep:
#!/bin/sh
grep --color -n "$@"
Place it in your path, say ~/bin (if you read UPE this is in your path :). Then stuff like this will work:
find /usr/share -name '*.txt' | xargs cgrep testing
I'm still not so happy, I too wanted grep to always color when stdout to a terminal without selectively typing cgrep.
- 71
- 7