On 10/16/2011 08:01 PM, Derek Martin wrote:
>>> echo "This is a [WARNING] message " | sed -e 
>>> 's/.*[WARNING].*/'${COLOR_WARN}'&'${COLOR_RESET}'/g;'
> 
> This should work, once you properly escape the 'e':
> 
> msg=`echo "This is a [WARNING] message " | sed 
> 's//.*[WARNING].*/'${COLOR_WARN}'&'${COLOR_RESET}'/g;'`
> echo -e $msg

What eventually worked very well for me, after reading all your posts,
was to use "echo -e" to set the color variables, then I don't need any
special treatment after that in sed.

eg
export COLOR_WARN=`echo -e '\e[33;40m'`

then I can just do

echo "This is a [WARNING] message " | sed -e
's/.*[WARNING].*/'${COLOR_WARN}'&'${COLOR_RESET}'/g;'

Thanks for all your help.  The only real problem I'm having at this
point is matching square brackets.  Since square brackets need to be
escaped even when maching a set of characters, I don't know how to tell
it to match an open square bracket then characters in a set, then a
close square bracket.

This is what I mean: Lets say I want to match [ followed by lower case
letters or a period, followed by ].
MATCH:  [net.thekramers.foo]
NOT A MATCH:  net.thekramers.foo
NOT A MATCH:  [net.thekramers.Foo!]

_______________________________________________
Discuss mailing list
[email protected]
http://lists.blu.org/mailman/listinfo/discuss

Reply via email to