Grep im Terminal von Mac OS X – es wird nur eine Farbe angezeigt

Grep im Terminal von Mac OS X – es wird nur eine Farbe angezeigt

Ich bin es gewohnt, grepden Dateinamen, die Zeilennummer und die Übereinstimmung selbst einfärben zu können. Diese drei sollten unterschiedliche Farben haben. Dies funktioniert einwandfrei auf einem Linux-Terminal und sogar MinGW unter Windows, aber unter OS X GREP_COLORkann ich, selbst wenn ich es einstelle, nur das übereinstimmende Ergebnis einfärben.

grepIst die mit dem Betriebssystem mitgelieferte Version zu alt?

10.7.3 auf MBA 13" mit Terminal.app.

Antwort1

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 auf OS X installieren durchSelbstgebrautes:

brew install grep

Dies wird ggrepso installiert, dass Ihr vorhandenes nicht überschrieben wird grep. Wenn Sie das ändern möchten, lesen Sie die Infomeldung:

Alle Befehle wurden mit dem Präfix „g“ installiert. Wenn Sie diese Befehle mit ihren normalen Namen verwenden müssen, können Sie Ihrem PATH von Ihrer bashrc aus ein „gnubin“-Verzeichnis hinzufügen, wie:

PATH="$(brew --prefix)/opt/grep/libexec/gnubin:$PATH"

Darüber hinaus können Sie eine Farboption aktivieren und einige Verzeichnisse standardmäßig ausschließen, was es möglicherweise nützlicher macht:

alias grep="ggrep --color=auto --exclude-dir={.bzr,CVS,.git,.hg,.svn,.idea,.tox}"

Fügen Sie dies zu Ihrer ~/.bash_profileoder einer anderen von Ihnen verwendeten Shell-Konfiguration hinzu.

Antwort2

Richtig. Mehrere Farben wurden erstmals in GNU grep 2.5.3 unterstützt.

verwandte Informationen