Re: sed puzzle

Top Page
Attachments:
Message as email
+ (text/plain)
Delete this message
Reply to this message
Author: reed@reedmedia.net
Date:  
To: nathan, Main PLUG discussion list
Subject: Re: sed puzzle
On Wed, 5 Dec 2007, Nathan Aubrey wrote:

> I need to replace some words with other words, but sometimes the words
> are not present, so I need to add the words.
> In a config file I use, it has the following field
>
> KIDS     :
> Mother   : Amanda
> Father   : Scott

>
>
> It is easy to swap out the names of mother or father, as the variables
> are there, but if I try to swap out a kids name and there is no kids
> name already in place, how do I add it instead? Is it one command, or
> must I test if the content is empty then add instead of replacing?


If I understand you correctly, it would no different.


sed -e 's/^\(KIDS[^:]*: \).*$/\1Newname/'

Many ways to do this, but the above if there is or is not a name.

> The field example cannot change as it's just the format I use...
> I appreciate any insite, sed is a great tool, but man! what a beast!


Jeremy C. Reed

p.s. I use sed constantly. Today, I wrote a simple script using sed to
convert plain text to latex (special characters).

sed \
 -e 's/\\/BBaaCCkkSSllAAssHH/g' \
 -e 's/\#/\\#/g' \
 -e 's/\$/\\$/g' \
 -e 's/\%/\\%/g' \
 -e 's/\~/\\~/g' \
 -e 's/\_/\\_/g' \
 -e 's/\^/\\^/g' \
 -e 's/{/\\{/g' \
 -e 's/}/\\}/g' \
 -e 's/\    /\~\~\~\~/g' \
 -e 's/^ /\~/g' \
 -e 's/  /\~\~/g' \
 -e 's/^$/ \~ \\\\/g' \
 -e 's/BBaaCCkkSSllAAssHH/\\textbackslash{}/g' \
 -e 'G'    # double space
---------------------------------------------------
PLUG-discuss mailing list - 
To subscribe, unsubscribe, or to change your mail settings:
http://lists.PLUG.phoenix.az.us/mailman/listinfo/plug-discuss