Really? grcat/grc's configs are very simple. For example, this is the config for colorizing diffs:
regexp=^\+(.*$)
colours=bold green
count=more
=======
regexp=^\-(--.+$|[^\-].*$|$)
colours=bold red
count=more
========
regexp=^\>([^\>].*|$)
colours=bold green
count=more
=======
regexp=^\<([^\<].*|$)
colours=bold red
count=more
=======
regexp=^@@ .* @@$
colours=magenta
count=more
I agree that colout works better for ad-hoc stuff.
You should consider inverting the way it's invoked, though, to be more like grc, otherwise you can't reliably use colout in an alias (as pointed out elsewhere in this thread).
alias ls="ls -lph1 --color=always"
function ls {
/bin/ls $@ | colout [regex] colours
}
This will pass all arguments after "ls" to the /bin/ls command. This also means you can keep your existing aliases clean and tidy for common params.
Remember to use the full path (or /usr/bin/env maybe) so that you don't create a recursive call to your function ;)
This doesn't deal with the situation of being unable to get the return value of the original command, but depending on your needs, this may not be an issue.
You should consider inverting the way it's invoked, though, to be more like grc, otherwise you can't reliably use colout in an alias (as pointed out elsewhere in this thread).