Grep dans le terminal de Mac OS X - affichant une seule couleur

9

Je suis habitué à ce que grep puisse colorer le nom de fichier, le numéro de ligne et la correspondance elle-même. Ces trois devraient être de couleurs différentes. Cela fonctionne parfaitement sur un terminal Linux et même MinGW sur Windows, mais sur OS X même si je mets GREP_COLOR je ne peux obtenir de la couleur que sur le résultat correspondant.

La version de grep fournie avec le système d'exploitation est-elle trop ancienne?

10.7.3 sur MBA 13 "avec Terminal.app.

Steven Lu
la source
Cela fonctionne toujours? -> superuser.com/questions/416835/…
emgee
Je viens juste de là. J'ai fait exactement ce qui a été décrit. Une seule couleur a été définie.
Steven Lu

Réponses:

9

Comme Ignacio l'a déjà dit, OS X grep est un peu dépassé (c'est la version 2.5.1). Vous pouvez cependant installer le dernier grep GNU.

Comme toujours, vous pouvez installer la plupart des outils Linux manquants sur OS X via Homebrew , mais sa politique n'est pas de proposer des doublons pour les outils système. Il existe un référentiel alternatif pour ces dupes, mais vous devez d'abord le "toucher":

brew tap homebrew/dupes/

Ensuite, vous pouvez installer le nouveau grep(version 2.11 à partir de mai 2012):

brew install homebrew/dupes/grep

Sachez que cela /usr/binvient toujours en premier PATH, vous avez donc besoin /usr/local/bin/grepde la nouvelle version.

slhck
la source
Quelle est une bonne façon de lancer grep à partir du nouvel emplacement? un alias?
Steven Lu
2
@StevenLu, vous voudrez peut-être mettre /usr/local/binavant /usr/bin. par exemple, vous pouvez le faire globalement en modifiant /etc/paths, ou faire éditer votre script de démarrage du shell (par exemple, ~/.bash_profile) PATHpour changer l'ordre.
Chris Page
2
@StevenLu, voir Amender PATH pour que / usr / local / bin devance / usr / bin .
Chris Page
1

Correct. Plusieurs couleurs ont d'abord été prises en charge dans GNU grep 2.5.3.

Ignacio Vazquez-Abrams
la source