2015-05-07 4 views
4

Я хочу найти все файлы в каталоге для ключевого слова и его цвет, как:BASH: Поиск нескольких ключевых слов в файле и выделить их

grep -n "keyword1" * --color 

Теперь я хочу, чтобы выделить все вхождения keyword2 и keyword3 в другом цвете.

мне удалось

grep -n "keyword1 * |egrep --color "keyword2|keyword3|$' 

это цвет как последние ключевые слова, но в том же цвете. , но я не могу установить несколько разных цветов для работы с раскраской из первого grep-оператора. Я не знаю, как установить постоянный GREP_COLORS правильно

+0

спасибо, да это doublicate более или менее –

ответ

3

Что-то, как это будет делать работу:

grep --color=always -n "keyword1" * | GREP_COLOR='1;30;40' grep --color keyword2 
+0

мне нужно, чтобы понять все варианты, так что что я догадался до сих пор: - --color = всегда удерживает слово выделенным даже через конвейерные greps, поэтому, если вы ищете 3 или более слова, вам нужно установить = всегда для всех команд, но последний - GREP_COLOR = '1; 30' означает толщину 1 (полужирный) и цвет 30 (черный, плохой выбор, если вы используете темный фон) Я знаю, что GREP_COLOR может принять eve n более сложных параметров, но я просто не могу найти исчерпывающую документацию (+1 к этому ответу за хорошее решение кстати) – afe

+0

Это хорошо описано в разделе 'GREP_COLORS' в' grep man page'. Согласно man-странице 'GREP_COLOR'' устарел в пользу GREP_COLORS'. –

Смежные вопросы