Re: grouping in sed with OR operator in bash in one line
Toby <[email protected]> Thu, 22 Jul 2010 10:29:19 -0700 (PDT)
| Newsgroups | gmane.comp.gnu.utils |
|---|---|
| Organization | http://groups.google.com |
| Message-ID | <d16c1a49-1d1a-437b-afc1-557f83703277@k19g2000yqc.googlegroups.com> |
On Jul 20, 10:02 pm, [email protected] (Alan Curry) wrote: > In article <caa6a54d-8488-499c-8057-f24e930f3...@g35g2000yqa.googlegroups.com>, > > Toby <[email protected]> wrote: > >Hi, > > >I would like to replace a a set of words by another word via sed. My > >first try was: > > > echo "a cat or a dog" | sed 's/\(cat\)\|\(dog\)/PET/g' > > >I also tried some variations of this. But all failed. > > Works for me: > > $ echo "a cat or a dog" | sed 's/\(cat\)\|\(dog\)/PET/g' > a PET or a PET > > The \(...\) aren't necessary, since the \| has low precedence. > > $ echo "a cat or a dog" | sed 's/cat\|dog/PET/g' > a PET or a PET > > $ sed --version > GNU sed version 4.1.5 > Copyright (C) 2003 Free Software Foundation, Inc. > This is free software; see the source for copying conditions. There is NO > warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE, > to the extent permitted by law. > > -- > Alan Curry Hi Alan, indeed I had the BSD version. I followed this to install GNU. Now it works. Thanks a lot. Cheers, Toby References [1] http://dsmarkchen.blogspot.com/2007/12/gnu-sed-on-mac.html