[ale] here's one for the script wizards
Richard Bronosky
Richard at Bronosky.com
Wed Feb 10 12:14:30 EST 2010
echo 'foo (bar) ice cream (brown) sky is blue (airplane flies) just
flies' | sed 's/([^)]*) *//g'
On Wed, Feb 10, 2010 at 12:05 PM, <fletch at phydeaux.org> wrote:
>
>>
>>> Sorry, I wasn't specific enough. I'm looking to separate all the
>>> parenthesized words from the non-parenthesized:
>>>
>>> input: foo (bar) ice cream (brown) sky is blue (airplane flies) just
>>> flies
>>>
>>> output:
>>> foo ice cream sky is blue just flies
>>> (bar) (brown) (airplane flies) --- with or without parenthesis, it
>>> doesn't matter.
>>
>> Presuming the parens aren't nested
>>
>> $ echo 'foo (bar) ice cream (brown) sky is blue (airplane flies) just
>> flies' | perl -lne
>> 'my(@n, at p);my at d=m{(\(?[^()]+\)?)\s+}g;push@{$_%2==0?\@n:\@p},$d[$_]for
>> 0..$#d;print join(" ", at n);print join(" ", at p);'
>> foo ice cream sky is blue just
>> (bar) (brown) (airplane flies)
>
> Bah, messed up the regex and it drops the last word. Slightly tweaked
> version works better.
>
> echo 'foo (bar) ice cream (brown) sky is blue (airplane flies) just flies'
> | perl -lne
> 'my(@n, at p);my at d=m{(\(?[^()]+\)?)(?:\s+|$)}g;push@{$_%2?\@p:\@n},$d[$_]for
> 0..$#d;print join(" ", at n);print join(" ", at p);'
> foo ice cream sky is blue just flies
> (bar) (brown) (airplane flies)
>
> --
> Fletch | "If you find my answers frightening, __`'/|
> fletch at phydeaux.org| Vincent, you should cease askin' \ o.O'
> | scary questions." -- Jules =(___)=
> | U
>
>
> _______________________________________________
> Ale mailing list
> Ale at ale.org
> http://mail.ale.org/mailman/listinfo/ale
> See JOBS, ANNOUNCE and SCHOOLS lists at
> http://mail.ale.org/mailman/listinfo
>
--
.!# RichardBronosky #!.
More information about the Ale
mailing list