X-Spam-Check-By: sourceware.org
Message-ID: <454063A9.5FCA59C2@dessent.net>
Date: Thu, 26 Oct 2006 00:28:41 -0700
From: Brian Dessent <brian@dessent.net>
X-Mailer: Mozilla 4.79 [en] (Windows NT 5.0; U)
MIME-Version: 1.0
To: fergus <fergus@bonhard.uklinux.net>
CC: cygwin@cygwin.com
Subject: Re: Easy? sed syntax
References: <000001c6f8c7$3452f4b0$240210ac@tcgp.dundee.ac.uk>
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
X-IsSubscribed: yes
Reply-To: cygwin@cygwin.com
Mailing-List: contact cygwin-help@cygwin.com; run by ezmlm
List-Subscribe: <mailto:cygwin-subscribe@cygwin.com>
List-Archive: <http://sourceware.org/ml/cygwin/>
List-Post: <mailto:cygwin@cygwin.com>
List-Help: <mailto:cygwin-help@cygwin.com>, <http://sourceware.org/ml/#faqs>
Sender: cygwin-owner@cygwin.com
Mail-Followup-To: cygwin@cygwin.com
Delivered-To: mailing list cygwin@cygwin.com

fergus wrote:

> In any string (eg "xaaabababbbxaabbbabx") remove all instances of "ab" and
> keep on doing this as long as you can.
> 
> Do it once:
> 
>     echo xaaabababbbxaabbbabx | sed 's/ab//g'
>     xaabbxabbx

echo xaaabababbbxaabbbabx | sed -e :a -e 's/ab//' -e ta

See section 3.7 of the sed manual.  The idiom of ":a ... ta" creates a
label 'a' and then branches back to that label (repeating the s///) as
long as there was a successful match.

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/

