On Wed, Mar 24, 2010 at 10:17 AM, Christopher Zimmermann <madro...@zakweb.de> wrote: > On Wed, 24 Mar 2010 19:00:06 +0200 Gregory Edigarov wrote: >> Just wonder how could one implement what gnu grep -o flag does using >> our toolchain? >> >> from ggrep(1): >> >> -o, --only-matching >> Show only the part of a matching line that matches >> PATTERN. > > maybe try this: > sed -n -e 's/.*\(PATTERN\).*/\1/ -e /PATTERN/p
Hmm, missing quote, and the expressions can be combined, but as a portable solution this is indeed the right answer. sed -n -e 's/.*\(PATTERN\).*/\1/p' If you need extended (egrep-style) regexps, then the most portable solution is a chunk of awk (left as an exercise for the student); the less-portable-but-works-in-4.7 solution is to use -E option to sed: sed -n -E 's/.*(PATTERN).*/\1/p' Philip Guenther