hhighlighter
hhighlighter (or just h)
A tiny utility to highlight multiple keywords with different colors
- Idea: Paolo Antinori
- Based on: ack – http://beyondgrep.com/ written by Andy Lester
Description
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:
Requirements
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.
see: http://beyondgrep.com/install/
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 <a rel="nofollow noopener" target="_blank" href="https://beyondgrep.com/ack-2.16-single-file">https://beyondgrep.com/ack-2.16-single-file</a> > ~/bin/ack && chmod 0755 !#:3
Installation Instructions
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
Zsh with Oh-My-Zsh
Just run the following commands
cd $ZSH_CUSTOM/plugins git clone git@github.com: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 ... )
Platform Specifics
h has currently been tested only on bash and zsh on Linux and MacOSX.
Usage
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
Configuration
h supports overriding of its default colors via 2 environment variables: 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:
Figure 1: RGB Map, taken from https://github.com/jbnicolai/ansi-256-colors
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
Examples
Default colors
echo "abcdefghijklmnopqrstuvxywz" | h a b c d e f g h i j k l
Invert colors
echo "abcdefghijklmnopqrstuvxywz" | h -n a b c d e f g h i j k l
Support for tail
in follow mode
tail -F | h keyword1 keyword2
Case Insensitive
mvn clean install | h -i failure success
Disable regular expression
tail -F my.log | h -d org.apache.camel
Highlight multiple keys with the same color (using regexp syntax)
echo abcd | h 'b|d'
Screenshots
Demos
Ascii Cinema GifAscii Cinema Gif
Ascii Cinema: Ascii Cinema