Cygwin's vanilla sed : capabilities and limitations

Brian Dessent brian@dessent.net
Wed Jul 16 15:14:00 GMT 2003


fergus@bonhard.uklinux.net 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/



More information about the Cygwin mailing list