Grep в терминале Mac OS X — отображается только один цвет

Grep в терминале Mac OS X — отображается только один цвет

Я привык, что grepмогу раскрасить имя файла, номер строки и само совпадение. Эти три должны быть разных цветов. Это работает безупречно на терминале Linux и даже MinGW на Windows, но на OS X, даже если я задаю, GREP_COLORя могу получить цвет только на совпавшем результате.

Версия, grepпоставляемая с ОС, слишком старая?

10.7.3 на MBA 13" с Terminal.app.

решение1

Как уже сказал Игнасио, OS X grep немного устарел (версия 2.5.1). Но вы можете установить последнюю версию GNU grep.

Как всегда, вы можете установить большинство недостающих инструментов Linux на OS X черезДомашнее пиво:

brew install grep

Это установит ggrepтак, чтобы не перезаписывать существующий grep. Если вы хотите изменить это, см. информационное сообщение:

Все команды установлены с префиксом "g". Если вам нужно использовать эти команды с их обычными именами, вы можете добавить каталог "gnubin" в свой PATH из вашего bashrc, например:

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

Кроме того, вы можете включить опцию цвета и исключить некоторые каталоги по умолчанию, что может сделать ее более полезной:

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

Добавьте это к вашей ~/.bash_profileили любой другой конфигурации оболочки, которую вы используете.

решение2

Правильно. Поддержка нескольких цветов впервые появилась в GNU grep 2.5.3.

Связанный контент