A tiny utility to highlight multiple keywords with different colors
-
Idea: Paolo Antinori
-
Based on: ack - http://beyondgrep.com/ written by Andy Lester
h (hhighlighter is just a name to help search engines) is a really tiny helper script meant to highlight keywords in the output of another *nix command:
h is just a tiny facade in front of ack so you need to install it first.
What is ack?
ack is a tool like grep, optimized for programmers
Designed for programmers with large heterogeneous trees of source code, ack is written purely in portable Perl 5 and takes advantage of the power of Perl’s regular expressions.
ack installation
ack is part of many major linux distributions so you should use your package manager to install it.
If you want to install ack in a portable way ( at the end ack is just a script ) you do it in this way:
curl https://beyondgrep.com/ack-2.16-single-file > ~/bin/ack && chmod 0755 !#:3
h is implemented as a function in bash.
You can install it in one of these ways:
-
copy and paste
h()
function in your~/.bashrc
-
configure your
~/.bashrc
to load the external script with. /path/to/h.sh
or using Shinichi Okada’s Awesome Package Manager - https://github.com/shinokada/awesome
- awesome -i paoloantinori/hhighlighter h
Just run the following commands
cd $ZSH_CUSTOM/plugins
git clone [email protected]:paoloantinori/hhighlighter.git h
mv h/h.sh h/h.plugin.zsh
then add h to your plugins variable in your ~/.zshrc
file.
plugins=(
h
...
)
h is meant to consume the output of another Linux command via pipe
$ h
usage: YOUR_COMMAND | h [-i] [-d] args...
-i : ignore case
-d : disable regexp
-n : invert colors
H_COLORS_FG
and H_COLORS_BG
.These variables accepts a comma separated values set of Perl Term::ANSIColor configuration entries. For a table of RGB colors definition check this handy map:
Ex.
export H_COLORS_FG="bold black on_rgb520","bold red on_rgb025" export H_COLORS_BG="underline bold rgb520","underline bold rgb025" echo abcdefghi | h a b c d
echo "abcdefghijklmnopqrstuvxywz" | h a b c d e f g h i j k l
echo "abcdefghijklmnopqrstuvxywz" | h -n a b c d e f g h i j k l
tail
in follow modetail -F | h keyword1 keyword2
mvn clean install | h -i failure success
tail -F my.log | h -d org.apache.camel
echo abcd | h 'b|d'