discoball
discoball copied to clipboard
A simple stream filter to highlight patterns
discoball
discoball is a tool to filter streams and colorize patterns. It functions somewhat like egrep --color,
except that it can highlight multiple patterns (in different colors). Patterns are arbitrary ruby regexes that
are matched against the entire line.
Usage
$ discoball [options] <pattern1 pattern2 ...>
where options are:
--group-colorsor-g: Color all matches of the same pattern with the same color--one-coloror-o: Highlight all matches with a single color--match-anyor-m: Only print lines matching an input pattern--match-allor-a: Only print lines matching all input patterns--helpor-h: Print the help message
Examples
-
Highlight instances of "foo" and "bar" in the text of
myfile.txt:$ cat myfile.txt | discoball foo bar -
Highlight paths of processes running out of
/usr/sbin/:$ ps -ef | discoball --one-color --match-any '/usr/sbin/.*$' -
I wrote discoball for use with Steve Losh's todo-list tool, t. I put tags on my tasks annotated with
+(inspired by Todo.txt):$ t Make an appointment with the dentist +healthWhen I list my tasks (using
t), I use discoball to highlight the tags with different colors:$ t | discoball '\+\S+'I can even do some fancier stuff to list particular labels. I have the following function defined in my
.bashrc:function tl() { if [ -z "$1" ]; then t | discoball '\+\S+' else t | discoball -a "${@/#/\+}" fi }I can use this as follows:
$ tl # ~> Show the list of tasks, with tags highlighted $ tl health urgent # ~> Show only tasks tagged with 'health' and 'urgent'Demo:

Installation
The easiest way to get discoball is by using pip (or easy_install): $ pip install discoball.