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?


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.


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


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'


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.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.