
Я привык, что 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.