Ви можете використовувати термінал і цю функцію оболонки:
cless ()
{
# less-like function that colors specified word
# 'while read' reads every line and saves it to variable $REPLY
while read; do
# If line contains the word to highlight, grep with option --color...
if [ $(echo $REPLY | grep -c $1) -eq 1 ]; then
echo $REPLY | grep --color=always $1;
else
# ... otherwise simply output the line
echo $REPLY;
fi;
# continue until end of file, paging with 'less'
done < $2 | less -R
}
Потрібно два аргументи, слово для виділення та файл для розбору.
Щоб використовувати його, відкрийте Terminal у програмах> Утиліти> Термінал та введіть;
$ function cless { while read; do if [ $(echo $REPLY | grep -c $1) -eq 1 ]; then echo $REPLY | grep --color=always $1; else echo $REPLY; fi; done < $2 | less -R; }
$ cless ERROR /path/to/my/logfile.log
Як і у випадку less
, використовуйте SPACEабо Fдля прокручування вперед та Bдля прокрутки назад. Якщо слово, яке ви зазвичай шукаєте, - ПОМИЛКА, створіть псевдонім:
$ alias cerror='cless ERROR'
$ cerror /path/to/my/logfile.log
Щоб автоматично завантажувати функцію та псевдонім під час запуску терміналу, додайте ці рядки до свого ~/.bashrc
файлу:
function cless { while read; do if [ $(echo $REPLY | grep -c $1) -eq 1 ]; then echo $REPLY | grep --color=always $1; else echo $REPLY; fi; done < $2 | less -R; }
alias cerror='cless ERROR'
і перезавантажте його:
$ . ~/.bashrc
Якщо ви хочете регістронезавісімий пошук, замінити grep
з grep -i
(наприклад, grep -c $1
став би grep -i -c $1
).