Jak mogę grepować kolorem w terminalu Mac OS X?


39

Niedawno odkryłem, że w Mac OS XI mogę to ustawić w mojej powłoce ~/.profile, aby po użyciu grepwydrukować mecze w kolorze (biały czerwony).

alias grep='GREP_COLOR="1;37;41" LANG=C grep --color=auto'

Ale ustawienie aliasu wydaje się być sposobem na hackowanie. Wcześniej próbowałem bez powodzenia:

export GREP_COLOR=always           # works fine in Linux

A potem próbowałem też:

export GREP_COLOR="1;37;41"

Czy jest na to lepszy sposób niż skonfigurowanie aliasu?


Nie rozumiem sensu twojego pytania. Alias ​​to sposób, w jaki to robisz. Po to jest. exportzmienna środowiskowa np. w .bash_profilei zdefiniuj alias grep='grep --color', i gotowe.
Daniel Beck

Odpowiedzi:


60

Na Grep_color na Macu, jak sugeruje @lupincho, wydaje się, że działa dobrze i nie używa aliasu:

export GREP_OPTIONS='--color=always'
export GREP_COLOR='1;35;40'

13
Daj +1 za to dobre rozwiązanie, jednak ustawienie GREP_OPTIONS prowadzi grep: warning: GREP_OPTIONS is deprecated; please use an alias or script. Preferowane jest teraz coś takiego:alias grep="`which grep` --color=always"
joelittlejohn,

2
@joelittlejohn nie działa, gdy używasz grep w rurach z xargs, np .:find /usr/share -name '*.txt' |xargs grep testing
rfabbri

1
@rfabbri Wydaje mi się, że to jeden z członków zespołu grep, który przestał to
robić

3
--color=alwaysjest niebezpieczny. Skrypty uruchamiane z powłoki również odziedziczą tę opcję i powodują bardzo tajemnicze awarie, gdy grep zaczyna wstrzykiwać kolorowe kody do wyjścia w skryptach. --color=autonie powoduje tego problemu.
Sampo

1
@joelittlejohn, które nie jest prawdziwe dla domyślnego grep w OSX. Nawet w High Sierra 10.13 używa FREEBSD grep 2.5.1, który NIE ZOSTAŁ amortyzowany GREP_OPTIONS. Dotyczy to tylko gnu / grep
cde
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.