Grep no terminal do Mac OS X - exibindo apenas uma cor

9

Estou acostumado a grep poder colorir o nome do arquivo, o número da linha e a correspondência. Esses três devem ter cores diferentes. Isso funciona perfeitamente em um terminal Linux e até em MinGW no Windows, mas no OS X, mesmo que eu defina GREP_COLOR, só posso obter cores no resultado correspondente.

A versão do grep está empacotada com o sistema operacional muito antiga?

10.7.3 no MBA 13 "com Terminal.app.

Steven Lu
fonte
Isso ainda funciona? -> superuser.com/questions/416835/…
emgee
Eu só vim de lá. Eu fiz exatamente o que foi descrito. Apenas uma cor foi definida.
Steven Lu

Respostas:

9

Como Ignacio já disse, o OS X grep está um pouco desatualizado (é a versão 2.5.1). Você pode instalar o mais recente GNU grep.

Como sempre, você pode instalar a maioria das ferramentas Linux ausentes no OS X através do Homebrew , mas sua política não é oferecer duplicatas para ferramentas do sistema. Existe um repositório alternativo para esses enganadores, mas você precisa "tocar" primeiro:

brew tap homebrew/dupes/

Em seguida, você pode instalar o novo grep(versão 2.11 em maio de 2012):

brew install homebrew/dupes/grep

Esteja ciente de que /usr/binainda vem em primeiro lugar no seu PATH, então você precisa /usr/local/bin/grepda nova versão.

slhck
fonte
Qual é uma boa maneira de executar o grep a partir do novo local? um apelido?
Steven Lu
2
@StevenLu, você pode querer colocar /usr/local/binantes /usr/bin. por exemplo, você pode fazer isso globalmente editando /etc/pathsou fazer com que o script de inicialização do shell (por exemplo ~/.bash_profile) edite PATHpara alterar a ordem.
Chris Page
1

Corrigir. Várias cores foram suportadas pela primeira vez no GNU grep 2.5.3.

Ignacio Vazquez-Abrams
fonte