Если я работаю grep -ir "somethingtomatch" .
из текущего каталога я обычно получаю результаты как это:
./some/path/file1.html: filecontent filecontent keyword filecontent
./some/path/file2.html: filecontent filecontent filecontent keyword
./some/path/file3.html: filecontent keyword filecontent filecontent
./some/path/file4.html: keyword filecontent filecontent filecontent
Я использовал grep --color=auto -ir 'somethingtomatch" .
но это только выделяет ключевые слова в белом на красном выделении. Я пытаюсь нанести цветную маркировку на имена файлов слева также. Как я делаю это?
Я использую Terminal.app в OS X с ударом и xterm (и я попробовал xterm-цвет также).
Можно изменить цвета с переменной среды $GREP_COLORS. В Вашем случае Вы могли попытаться export GREP_COLORS='fn=1;32'
изменить цвет имени файла к зеленому.
Необходимо было бы постобработать вывод. Что-то вроде этого могло бы работать:
$ grep --color -ir 'pattern' files | perl -pe 's/^([^:]+):/chomp(my $f = `ls --color \Q$1`); $f/e'
(Я предполагаю, что Вы отображаете вывод от системы Linux, начиная с OSX ls
не делает colorize файлов полезно для этого.)
(NB: различие между этим ответом и $GREP_COLORS
каждый - это последнее использование фиксированный цвет, тогда как шахта запрашивает ls --color
.)
Можно использовать ack, который позволяет Вам устанавливать переменные среды для имени файла, номера строки и самого соответствия.