Boston Linux & Unix (BLU) Home | Calendar | Mail Lists | List Archives | Desktop SIG | Hardware Hacking SIG
Wiki | Flickr | PicasaWeb | Video | Maps & Directions | Installfests | Keysignings
Linux Cafe | Meeting Notes | Blog | Linux Links | Bling | About BLU

BLU Discuss list archive


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Discuss] sed and ANSI sequences



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!]




BLU is a member of BostonUserGroups
BLU is a member of BostonUserGroups
We also thank MIT for the use of their facilities.

Valid HTML 4.01! Valid CSS!



Boston Linux & Unix / webmaster@blu.org