Subject: Re: Cygwin's vanilla sed : capabilities and limitations
From: Brian Dessent <[email-masked]>
To: [email-masked]
Date: Wed, 16 Jul 2003 07:00:48 -0700

[email-masked] wrote:

> Q1. Querying info sed reveals the expression matcher to be "greedy",
> matching the longest possible string. Is there a way to make it match the
> shortest possible, so that echo aaabbbccc | sed 's/^.*b//' (altered but
> similar) grabs aaab not aaabbb?

If you have perl available (or just a tool that uses perl-compatible
regexps, i.e. grep -P) you can add the '?' character after any qualifier
to get the non-greedy version, i.e. '*?' is the non-greedy '*', '??' is
the non-greedy '?', etc.  But this is a feature of pcre, which I don't
believe applies to sed in any shape or form.  However, most sed scripts
are pretty easy to do in perl with little modification, so if you
require this function that's what I'd do.

Brian

--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Problem reports:       http://cygwin.com/problems.html
Documentation:         http://cygwin.com/docs.html
FAQ:                   http://cygwin.com/faq/