Opção de cor padrão do Grep

9

grep é um dos comandos mais usados no linux. Parece-me que é uma característica básica para destacar a string que você pesquisou nas linhas de saída. isso pode ser alcançado pela opção --color.

Digitar - cor todas as vezes é irritante e também não é produtivo. Existe alguma maneira de mudar o grep para se comportar como grep - color.

Eu tentei escrever um pequeno script chamado grepd e adicionei isso à minha variável PATH. Mas o script não funciona na entrada grepd . Qualquer sugestão por favor.

#!/bin/bash
grep --color $1 $2
    
por Srujan Kumar Gulla 02.05.2013 / 19:52

3 respostas

17

Basta adicionar o seguinte alias ao arquivo de configuração do seu shell, por exemplo .bashrc ou .bash_profile (dependendo do que você usa, veja aqui ):

alias grep='grep --color=auto'

Você pode simplesmente usá-lo como grep .

Geralmente não há necessidade de criar scripts quando aliases de comando simples fazem a mesma coisa. Na verdade, seu script nem funcionaria se você quisesse passar mais opções para grep . Caso você precise de um pequeno snippet que possa lidar com argumentos, você deve usar as funções .

    
por 02.05.2013 / 19:58
2
#!/bin/sh
exec grep --color "$@"

Isso ilustra a maneira padrão de "encapsular" um comando com um script de shell, quando o comando não funciona da maneira que você gosta.

O exec evita a criação de um processo extra (um para o script e outro para o grep). Você pode deixar de fora se quiser.

O "$@" é substituído por todos os argumentos do script, independentemente de quantos existem. Ele preserva corretamente argumentos com espaços e outros caracteres especiais para o shell.

    
por 03.05.2013 / 15:06
-1

tente colocar export GREP_COLORS='AUTO' no seu ~ / .bashrc - para mim funciona.

de man grep

       --color[=WHEN], --colour[=WHEN]
          Surround  the  matched (non-empty) strings, matching lines, context lines, file names, line numbers, byte offsets, and separators (for fields and groups of context lines) with escape sequences
          to display them in color on the terminal.  The colors are defined by the environment variable GREP_COLORS.  The deprecated environment variable GREP_COLOR is still supported, but  its  setting
          does not have priority.  WHEN is never, always, or auto.
    
por 29.05.2017 / 12:00