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

9

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

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

10.7.3 на MBA 13 "с Terminal.app.

Стивен Лу
источник
Это все еще работает? -> superuser.com/questions/416835/…
emgee
Я только что пришел оттуда. Я сделал именно то, что было описано. Только один цвет был установлен.
Стивен Лу

Ответы:

9

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

Как всегда, вы можете установить большинство недостающих инструментов Linux на OS X через Homebrew , но его политика не предусматривает дублирование системных инструментов. Есть альтернативный репозиторий для этих дупсов, но сначала вы должны «нажать» на него:

brew tap homebrew/dupes/

Затем вы можете установить новый grep(версия 2.11 от мая 2012 года):

brew install homebrew/dupes/grep

Имейте в виду, что /usr/binвсе еще на первом месте у вас PATH, поэтому вам нужна /usr/local/bin/grepновая версия.

slhck
источник
Какой хороший способ запустить grep из нового места? псевдоним?
Стивен Лу
2
@ StevenLu, вы можете поставить /usr/local/binраньше /usr/bin. Например, вы можете сделать это глобально, отредактировав /etc/pathsили ~/.bash_profileотредактировав скрипт запуска оболочки (например, ), PATHчтобы изменить порядок.
Крис Пейдж
1

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

Игнасио Васкес-Абрамс
источник