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

Re: need help with sed problem



on 19:08 Fri 18 Mar, Joao Ferreira gmail (joao.miguel.c.ferreira@gmail.com) wrote:
> On Fri, 2011-03-18 at 18:59 +0100, Andrej Kacian wrote:
> > On Fri, 18 Mar 2011 17:46:04 +0000
> > Joao Ferreira gmail <joao.miguel.c.ferreira@gmail.com> wrote:
> > 
> > >jmf@squeeje:~$ sed s/bbbb.*/bbbb:$PWD/ text.txt
> > >sed: -e expression #1, char 16: unknown option to `s'
> > 
> > Hello,
> > 
> > this is because $PWD gets expanded by shell before sed gets called, so what
> > actually gets executed is:
> > 
> > sed s/bbb.*/bbbb:/home/myself/ text.txt
> > 
> > ...which is obviously syntactically incorrect.
> > 
> > To get result you want, try using different separator character than /, for
> > example the comma, or underscore:
> > 
> > $ sed s,bbb.*,bbbb:$PWD, text.txt
> > $ sed s_bbb.*_bbbb:$PWD_ text.txt
> 
> Thanks a lot... I did not know that was possible...
> 
> I used the # separator. Worked just fine

Please note that '#' is a valid filesystem name character.

There are relatively few values which are safely excludable.  In your
case this shouldn't be a problem, but in the general case (I'm working
on a script that needs to do path parsing) it's a bit of a pain.

-- 
Dr. Ed Morbius, Chief Scientist /            |
  Robot Wrangler / Staff Psychologist        | When you seek unlimited power
Krell Power Systems Unlimited                |                  Go to Krell!


Reply to: