Colorify grep output

Заради невероятно бързата си и точна работа, grep вероятно е най-полезният инструмент при търсене на определен низ в списък от резултати, файлове или устройства и е сред причините, заради които харесвам командният ред в Linux/Unix. Не зная колко често Ви се е налагало да търсите сред файловете в дадена директория (дори включително и в нейните поддиректории) за съдържанието на определена дума или комбинация, но лично аз в ежедневната си работа поне два-три пъти дневно се възползвам от услугите на grep за целта.

Преди време попаднах на статия, в която се споменаваха някои от по-рядко използваните опции от функционалността на програмата. Една от тях е оцветяване на резултатите, подобно на начина по който някои от търсачките оцветяват ключовите думи, по които извършвате търсенето си. Ето как изглежда резултатът от работата на grep при използване на оцветяване:

colorful grep output

За да накарате grep да оцветява резултатите е достатъчно да добавите следните два реда във файла ~/.bashrc (разбира се, ако ползвате друг shell ще трябва да добавите опциите във файла, от който конфигурирате поведението му):

export GREP_OPTIONS='--color=always'
export GREP_COLOR=32

Стойността на GREP_COLOR е цифра между 30 и 37 и означава, както следва:

30	black
31	red
32	green
33	yellow
34	blue
35	purple
36	cyan
37	white

Не вярвам да има някой, който да се усъмни в полезността на оцветяването на срещанията – на мен поне със сигурност ми помагат да се ориентирам в пъти по-бързо сред върнатите резултати. Bonus feature е опцията --line-buffered която буферира всеки ред, правейки търсенията в дълги текстови файлове значително по-бързи.

Update: Преди малко установих, че set-ването на GREP_OPTIONS като root причинява проблем при компилиране на ядрото – при изпълнение на make modules процесът спира веднага след навлизане във втория стадий на компилацията, издавайки следното съобщение:

Building modules, stage 2.
MODPOST 0 modules

Изглежда make-файловете на ядрото ползват променливата GREP_OPTIONS по някакъв по-специфичен начин и решението е да избегнете директното й set-ване, като за целта е достатъчно във файла ~/.bashrc, да замените реда

export GREP_OPTIONS='--color=always'

с този:

alias grep='grep --color=always'

Маркери: , ,

За тази статия



Категории