Re: grouping in sed with OR operator in bash in one line
[email protected] (Alan Curry) Tue, 20 Jul 2010 21:02:10 +0000 (UTC)
| Newsgroups | gmane.comp.gnu.utils |
|---|---|
| Organization | Aioe.org NNTP Server |
| Message-ID | <[email protected]> |
In article <caa6a54d-8488-499c-8057-f24e930f36e1@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