Substitua o comando grep por grep -n --colour?

17

Por ser preguiçoso ... sempre que quiser usar grep, quero que seja grep -n --colour. Existe uma maneira de mapear permanentemente isso?

Árvore77
fonte
6
+1 em "Porque sou preguiçoso ...". Já pensou em uma carreira como desenvolvedor? :)
dr Hannibal Lecter

Respostas:

31

No seu arquivo $ HOME / .bashrc, adicione:

export GREP_OPTIONS="-n --color"

Isso funcionará egreptambém e em aliases que usam grep.

Atualização : GREP_OPTIONS foi descontinuado do grep 2.21 e, se você usar esta solução, verá o seguinte aviso:

grep: warning: GREP_OPTIONS is deprecated; please use an alias or script

A melhor solução é, portanto, seguir o conselho da maco em sua resposta . Ou mude para o uso de ag , que exibe em cores por padrão.

richq
fonte
respeito.
myusuf3
4
Respeito, mas não voto positivo, não é? ;-)
richq
1
Os aliases podem ser usados ​​após um tubo muito bem. Eles simplesmente não se recuperam.
maco 13/08/10
1
Ei, ei, eu votei. Eu gosto disso melhor que o apelido.
Dmitriy Likhten 13/08/10
@marco: você está certo (com bash) - eu estava pensando em csh, onde eles não podem. Opa!
precisa saber é
29

Editar ~ / .bash_aliases Adicione uma linha que diz:

alias grep='grep -n --color'

~ / .bash_aliases é incluído automaticamente por ~ / .bashrc, se existir

maco
fonte
8
Ou adicione a linha .profilese quiser que ela funcione em todas as conchas e não apenas no bash.
LassePoulsen
1
isto não vai funcionar com xargs por exemplo:find /usr/share -name '*.txt' |xargs grep testing
rfabbri
2

você pode modificar o arquivo .bashrc localizado no diretório inicial, definindo um alias, que substituirá qualquer configuração padrão:

alias grep = 'grep -n --color'

após a alteração, feche e abra o terminal novamente, porque o arquivo é lido somente quando você abre o terminal.

Se você der uma olhada no arquivo .bashrc, encontrará mais aliases padrão como:

alias ll = 'ls -l'

alias la = 'ls -A'

alias l = 'ls -CF'

Paolo Sammicheli
fonte
1

Crie um script além de um alias mencionado nas outras respostas. Um alias por si só nem sempre funciona, e uma camada de script é rápida o suficiente para saída legível por humanos de qualquer maneira.

Escolha um nome curto, como cgrep:

#!/bin/sh
grep --color -n "$@"

Coloque-o no seu caminho, digamos ~/bin(se você ler UPE, este estará no seu caminho :). Então, coisas assim funcionarão:

find /usr/share -name '*.txt' | xargs cgrep testing

Ainda não estou tão feliz, também queria que o grep sempre colorisse ao sair para um terminal sem digitar seletivamente cgrep.

rfabbri
fonte