Grep im Mac OS X-Terminal - zeigt nur eine Farbe an

9

Ich bin es gewohnt, den Dateinamen, die Zeilennummer und die Übereinstimmung selbst zu färben. Diese drei sollten unterschiedliche Farben haben. Dies funktioniert einwandfrei auf einem Linux-Terminal und sogar auf MinGW unter Windows, aber unter OS X kann ich nur dann Farbe für das übereinstimmende Ergebnis erhalten, wenn ich GREP_COLOR einstelle.

Ist die mit dem Betriebssystem gepackte Version von grep zu alt?

10.7.3 auf MBA 13 "mit Terminal.app.

Steven Lu
quelle
Das funktioniert noch? -> superuser.com/questions/416835/...
emgee
Ich bin gerade von dort gekommen. Ich habe genau das getan, was beschrieben wurde. Nur eine Farbe wurde eingestellt.
Steven Lu

Antworten:

9

Wie Ignacio bereits sagte, ist OS X grep etwas veraltet (es ist Version 2.5.1). Sie können jedoch das neueste GNU grep installieren.

Wie immer können Sie die meisten fehlenden Linux-Tools unter OS X über Homebrew installieren. Es wird jedoch empfohlen , keine Duplikate für Systemtools anzubieten. Es gibt ein alternatives Repository für diese Dupes, aber Sie müssen es zuerst "antippen":

brew tap homebrew/dupes/

Dann können Sie die neue installieren grep(Version 2.11 ab Mai 2012):

brew install homebrew/dupes/grep

Beachten /usr/binSie PATH, dass dies bei Ihnen immer noch an erster Stelle steht , sodass Sie /usr/local/bin/grepdie neue Version benötigen .

slhck
quelle
Was ist ein guter Weg, um grep vom neuen Standort aus zum Laufen zu bringen? ein Alias?
Steven Lu
2
@StevenLu, möchten Sie vielleicht /usr/local/binvorher setzen /usr/bin. Sie können dies beispielsweise global durch Bearbeiten tun /etc/pathsoder Ihr Shell-Startskript (z. B. ~/.bash_profile) bearbeiten lassen PATH, um die Reihenfolge zu ändern.
Chris Seite
2
@StevenLu, siehe Ändern des Pfads, sodass / usr / local / bin vor / usr / bin steht .
Chris Seite
1

Richtig. In GNU grep 2.5.3 wurden erstmals mehrere Farben unterstützt.

Ignacio Vazquez-Abrams
quelle