‘tail -f’ with highlight
This is an example of how you can use tail with colors.
# tail -f /var/log/maillog | perl -pe 's/colorthisword/\e[1;32;40m$&\e[0m/g'
The ;;; values explained
0 | all attributes off |
1 | bold |
32 | foreground green |
40 | background black |
“colorthisword” can be any perl regular expression:
(foo|bar) | highlight the strings foo and bar |
\b((foo|bar)\b | highlight the words foo and bar |
.*\b((foo|bar)\b.* | highlight the whole line that contains the words foo or bar |
Colors
This vector holds the colors used for SGR control sequences parameters 30 to 37 \(foreground colors) and 40 to 47 (background colors).
Parameter | Color | |
---|---|---|
30 | 40 | black |
31 | 41 | red |
32 | 42 | green |
33 | 43 | yellow |
34 | 44 | blue |
35 | 45 | magenta |
36 | 46 | cyan |
37 | 47 | white |
Note
This only works on ANSI terminals
Hello and thank you. This article really helped me.
It is all ok, but in examples \b((foo|bar)\b and .*\b((foo|bar)\b.* you have two open prackets and there should be only one (\b(foo|bar)\b and .*\b(foo|bar)\b.*)