Grep_color на Mac


12

Я пытаюсь выделить свое регулярное выражение на Mac с помощью терминала. Я поставил это мое .profile:

export GREP_COLOR='1;30;40'

Ничего не меняется, поэтому я добавил то же самое к моему bash.profileеще ничего, перезапустил машину ничего. Когда я:

egrep --color=auto ".*\W blah blah "

затем загорается какой-то желтый цвет, но мне стало интересно, сделал ли я что-то не так в моем .profileили bash_profile.

Любая помощь будет хороша: снежный барс, просто старый терминал :-)


2
Не GREP_COLORосуждается? В любом случае grep --colorследует выделять совпадения цветом по умолчанию, без необходимости в переменных окружения.
jw013

Это только половина правды. GREP_COLORпозволяет вам настраивать фактические цвета, тогда как --colorвключает / отключает только те цвета, которые настроены по умолчанию. И я думаю GREP_COLORS(во множественном числе) это то, что не рекомендуется. Вот почему моя окраска исчезла много лет назад, и я не заметил этого.
Шридхар Сарнобат

Ответы:


22

Это работало на моей машине с снежным барсом. Попробуйте просто скопировать и вставить текст в свой терминал и посмотреть, показывает ли grep желаемое поведение. Если это так, то проблема в том, что вы не добавляете его в правильный файл точек. Какую оболочку вы используете? Точечный файл, к которому вы должны добавить его, зависит от используемой вами оболочки.

export GREP_OPTIONS='--color=auto'
export GREP_COLOR='1;30;40'

Кроме того, попробуйте запустить, printenvчтобы увидеть, какие переменные среды вы уже установили, и посмотреть, есть ли какие-либо параметры grep.


отлично!!! Спасибо!! намного лучше, чем настройка псевдонима!
cwd

1
Weird. Я собирался проголосовать за этот ответ, но у меня не получилось использовать терминал на Snow Leopard. Получившийся текст превратился во все черные ящики.
Старый Pro

2
@OldPro - я бы порекомендовал использовать, export GREP_COLOR='1;35;40'потому что 35 - это голубой, а 30 - серый, 40 - черный фон, поэтому он выглядит темным. Но да, это работает! :)
cwd

Мой терминал стал намного красивее. Я знаю, что истинная красота находится внутри, но я поверхностен.
Шридхар Сарнобат

1

Я не думаю, что по умолчанию Snow Leopard использует цвет для grep. Я добился успеха на своей коробке OS X с добавлением строки, как alias grep=grep --color=alwaysу меня, .bashrcчтобы обеспечить последовательное выделение.


6
--color=alwaysможет быть проблемой, если вывод grep передается другой команде. --color=autoуправляющие символы будут испускаться только тогда, когда выход выводится непосредственно на терминал
Gowtham

1

Это bash.profileни то bash_profile, ни другое .bash_profile.

Что касается цветов на вашем Mac, просто поместите это в ~/.bash_profile:

export GREP_OPTIONS='--color=auto'
export GREP_COLOR='1;30;40'

Обязательно используйте .bash_profileв своем домашнем каталоге ( ~/).

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.