Talk About Network



Register and Login
Nick
Password
Register create new account Sign up is FREE and you can post replies, new topics, bookmark posts and more!
Recover lost password


Programming > Awk > Re: Less greedy...
Latest [ Topics | Posts ] Archive Post A New Topic Post a Reply
<< Topic < Post Post 13 of 33 Topic 2223 of 2236
Post > Topic >>

Re: Less greedy pattern match

by Ed Morton <morton@[EMAIL PROTECTED] > Apr 18, 2008 at 09:27 AM

On 4/18/2008 2:50 AM, pk wrote:
> On Friday 18 April 2008 06:36, Ed Morton wrote:
> 
> 
>>Hang on, I spotted a couple more characters we could get rid of:
>>
>>   gawk 'NR%2' RS='</?t1>' ORS=
>>
>>So, it's now briefer than the perl solution:
>>
>>   perl -p0e 's%<t1>.+?</t1>%%gs'
>>
>>What does it do again ;-)?
> 
> 
> Ok ok, you won :-)
> Now let's just hope some perl diehard does not come up with a shorter
perl
> solution...
> 

I'm actually pretty impressed with the elegance of that solution (thanks
Rajan!)
and it's easily generalised to:

gawk -v RS='(begin|end)' -v ORS= 'NR%2'

where "begin" is the pattern that starts the segment you want to remove
(<t1> in
this case) and "end" is the pattern that terminates it (</t1>).

The only thing gawk-specific (or non-POSIX at least) about it now is the
use of
REs in the RS, but I'd like to see if there's a POSIX version anyway. This
is close:

awk -F'</?t1>' -v RS= '{for (i=1;i<=NF;i+=2) printf "%s",$i; print ""}'

but would add a trailing blank line at the end of the file, and won't
properly
handle blank lines between the "<tl>" and "</tl>". This would solve those
problems:

awk -F'</?t1>' 'BEGIN{RS=SUBSEP}{for (i=1;i<=NF;i+=2) printf "%s",$i;
print ""}'

but means the whole file has to be read in as one record which may not be
very
efficient for large files. Any ideas?

	Ed.




 33 Posts in Topic:
Less greedy pattern match
Prateek <prateek.a@[EM  2008-04-15 19:59:12 
Re: Less greedy pattern match
Ed Morton <morton@[EMA  2008-04-15 22:23:49 
Re: Less greedy pattern match
"Rajan" <svr  2008-04-16 00:02:06 
Re: Less greedy pattern match
pk <pk@[EMAIL PROTECTE  2008-04-17 20:32:10 
Re: Less greedy pattern match
pk <pk@[EMAIL PROTECTE  2008-04-17 21:12:47 
Re: Less greedy pattern match
Ed Morton <morton@[EMA  2008-04-17 14:33:44 
Re: Less greedy pattern match
pk <pk@[EMAIL PROTECTE  2008-04-17 22:01:46 
Re: Less greedy pattern match
pk <pk@[EMAIL PROTECTE  2008-04-17 22:12:04 
Re: Less greedy pattern match
"Rajan" <svr  2008-04-17 19:20:05 
Re: Less greedy pattern match
Ed Morton <morton@[EMA  2008-04-17 23:13:31 
Re: Less greedy pattern match
Ed Morton <morton@[EMA  2008-04-17 23:36:59 
Re: Less greedy pattern match
pk <pk@[EMAIL PROTECTE  2008-04-18 09:50:29 
Re: Less greedy pattern match
Ed Morton <morton@[EMA  2008-04-18 09:27:00 
Re: Less greedy pattern match
pk <pk@[EMAIL PROTECTE  2008-04-18 19:05:23 
Re: Less greedy pattern match
pk <pk@[EMAIL PROTECTE  2008-04-18 19:24:27 
Re: Less greedy pattern match
pk <pk@[EMAIL PROTECTE  2008-04-18 22:06:17 
Re: Less greedy pattern match
Ed Morton <morton@[EMA  2008-04-18 21:19:26 
Re: Less greedy pattern match
Cesar Rabak <csrabak@[  2008-04-19 13:15:05 
Re: Less greedy pattern match
Ed Morton <morton@[EMA  2008-04-20 08:36:44 
Re: Less greedy pattern match
"Rajan" <svr  2008-04-20 09:58:54 
Re: Less greedy pattern match
"Rajan" <svr  2008-04-20 10:21:46 
Re: Less greedy pattern match
Janis Papanagnou <Jani  2008-04-19 18:53:19 
Re: Less greedy pattern match
pk <pk@[EMAIL PROTECTE  2008-04-20 14:32:54 
Re: Less greedy pattern match
Janis Papanagnou <Jani  2008-04-20 16:30:25 
Re: Less greedy pattern match
Ed Morton <morton@[EMA  2008-04-21 09:16:17 
Re: Less greedy pattern match
pk <pk@[EMAIL PROTECTE  2008-04-22 10:09:12 
Re: Less greedy pattern match
Ed Morton <morton@[EMA  2008-04-22 06:14:10 
Re: Less greedy pattern match
"Rajan" <svr  2008-04-18 06:28:14 
Re: Less greedy pattern match
Prateek <prateek.a@[EM  2008-04-15 21:21:23 
Re: Less greedy pattern match
"Rajan" <svr  2008-04-16 00:54:18 
Re: Less greedy pattern match
Ed Morton <morton@[EMA  2008-04-16 07:06:52 
Re: Less greedy pattern match
"Rajan" <svr  2008-04-16 18:01:13 
Re: Less greedy pattern match
Ed Morton <morton@[EMA  2008-04-16 23:48:21 

Post A Reply:
  Go here to Signup

AddThis Feed Button


About - Advertising - Contact - Frequently Asked Questions - Privacy Policy - Terms of Use - Signup

Contact
tan12V112 Fri May 16 6:46:19 CDT 2008.