Date: Mon, 24 Sep 2001 17:29:36 +0200 From: Mark Rowlands <mark.rowlands@minmail.net> To: Paul Chvostek <paul@it.ca> Cc: freebsd-questions@FreeBSD.ORG Subject: Re: silly sed question Message-ID: <20010924152942.648C037B414@hub.freebsd.org> In-Reply-To: <20010924090342.A10056@gahch.it.ca> References: <20010924115816.EE2F637B418@hub.freebsd.org> <20010924090342.A10056@gahch.it.ca>
next in thread | previous in thread | raw e-mail | index | archive | help
On Monday 24 September 2001 3:03 pm, Paul Chvostek wrote: > Hiya. > > On Mon, Sep 24, 2001 at 01:58:12PM +0200, Mark Rowlands wrote: > > I have a string > > > > TARGETS='blob1 blob2 blob3' > > > > and I wish to use to change this to > > > > TARGETS='blob1 blob2 blob3 blob4' > > > > for a multitude of files. > > > > I am having problems with the quotes > > > > sed -e '/^TARGETS s/'$/blob4'/' myfile > > > > ie find the line that begins with TARGETS and on that line swap the > > ending single quote with blob4 and a single quote > > > > is what I want to write and for sed to DWIM..... > > > > I have tried escaping quotes in various places, double quotes and the > > like but the correct incantation escapes me.......can anyone help > > Not silly at all. Escaping quotes is a black art. ;-) > > Assuming that any occurrance of /^TARGETS=/ would be fine to match, your > original method could be grottily achieved like this: > > sed -e '/^TARGETS=/s/'"\'"'$/ blob4&/' myfile > > In a pinch, if the escaped quotes don't behave as expected, you can also > refer to the single quotes with dots and backreferences, and maybe be > more approximate with your matching. That is: > > sed -e '/^TARGETS=/s/\(.\)$/ blob4\1/' myfile Where shall I send the beer ;-) Many thanks...... -- Sex is the most fun you can have without laughing. To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-questions" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20010924152942.648C037B414>