Grep w terminalu Mac OS X - wyświetla tylko jeden kolor

9

Jestem przyzwyczajony do grepowania, że ​​mogę pokolorować nazwę pliku, numer linii i samo dopasowanie. Te trzy powinny być w różnych kolorach. Działa to bezbłędnie na terminalu Linux, a nawet MinGW w systemie Windows, ale w OS X, nawet jeśli ustawię GREP_COLOR, mogę uzyskać kolor tylko w dopasowanym wyniku.

Czy wersja grep jest spakowana z systemem operacyjnym za stara?

10.7.3 na MBA 13 "z Terminal.app.

Steven Lu
źródło
To nadal działa? -> superuser.com/questions/416835/…
emgee
Właśnie przyjechałem stamtąd. Zrobiłem dokładnie to, co zostało opisane. Ustawiono tylko jeden kolor.
Steven Lu

Odpowiedzi:

9

Jak już powiedział Ignacio, grep OS X jest nieco przestarzały (jest to wersja 2.5.1). Możesz jednak zainstalować najnowszą wersję GNU grep.

Jak zawsze możesz zainstalować większość brakujących narzędzi Linux w OS X za pośrednictwem Homebrew , ale jego polityka nie polega na oferowaniu duplikatów narzędzi systemowych. Istnieje alternatywne repozytorium dla tych duplikatów, ale najpierw musisz je „dotknąć”:

brew tap homebrew/dupes/

Następnie możesz zainstalować nowy grep(wersja 2.11 z maja 2012):

brew install homebrew/dupes/grep

Pamiętaj, że /usr/binwciąż jest na pierwszym miejscu PATH, więc potrzebujesz /usr/local/bin/grepnowej wersji.

slhck
źródło
Jaki jest dobry sposób na uruchomienie grep z nowej lokalizacji? alias?
Steven Lu
2
@StevenLu, możesz chcieć umieścić /usr/local/binwcześniej /usr/bin. np. możesz to zrobić globalnie, edytując /etc/pathslub ~/.bash_profileedytować skrypt startowy powłoki (np. ), PATHaby zmienić kolejność.
Chris Page
1

Poprawny. Wiele kolorów było najpierw obsługiwanych w GNU grep 2.5.3.

Ignacio Vazquez-Abrams
źródło