Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 24 Sep 2001 09:03:42 -0400
From:      Paul Chvostek <paul@it.ca>
To:        Mark Rowlands <mark.rowlands@minmail.net>
Cc:        freebsd-questions@FreeBSD.ORG
Subject:   Re: silly sed question
Message-ID:  <20010924090342.A10056@gahch.it.ca>
In-Reply-To: <20010924115816.EE2F637B418@hub.freebsd.org>; from mark.rowlands@minmail.net on Mon, Sep 24, 2001 at 01:58:12PM %2B0200
References:  <20010924115816.EE2F637B418@hub.freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help

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


-- 
  Paul Chvostek                                             <paul@it.ca>
  Operations / Development / Abuse / Whatever       vox: +1 416 598-0000
  IT Canada                                            http://www.it.ca/


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?20010924090342.A10056>