[RndTbl] Command line challenge: trim garbage from start and end of a file.

Adam Thompson athompso at athompso.net
Wed Nov 10 11:13:50 CST 2010


The AWK version is functionally identical, and not very much shorter, or any more elegant:

    awk ‘/output start/ {s=1};{if (s==1) print $0};/output end/ {s=0}’

(the perl version can generally be made that small, too.)

 

I would instead suggest sed(1), since this is precisely what it’s designed for:

    sed –n ‘/output start/,/output end/p’ < infile

 

-Adam

 

 

From: roundtable-bounces at muug.mb.ca [mailto:roundtable-bounces at muug.mb.ca] On Behalf Of Sean Walberg
Sent: Wednesday, November 10, 2010 10:56
To: Continuation of Round Table discussion
Subject: Re: [RndTbl] Command line challenge: trim garbage from start and end of a file.

 

OTTOMH:

 

perl -n -e 'BEGIN {$state = 0} $state = 1 if ($state == 0 and /output start/); $state = 2 if ($state == 1 and /output end/)  ; print if ($state == 1)' < infile > outfile

I'll bet there's a shorter AWK version though.

 

Sean

 

On Wed, Nov 10, 2010 at 10:51 AM, John Lange <john at johnlange.ca> wrote:

I have files with the following structure:

garbage
garbage
garbage
output start
.. good data
.. good data
.. good data
.. good data
output end
garbage
garbage
garbage

How can I extract the good data from the file trimming the garbage
from the beginning and end?

The following works just fine but it's dirty because I don't like the
fact that I have to pick an arbitrarily large number for the "before"
and "after" values.

grep -A 999999 "output start" <infile> | grep -B 999999 "output end" > newfile

Can anyone come up with something more elegant?

--
John Lange
www.johnlange.ca
_______________________________________________
Roundtable mailing list
Roundtable at muug.mb.ca
http://www.muug.mb.ca/mailman/listinfo/roundtable




-- 
Sean Walberg <sean at ertw.com>    http://ertw.com/

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://www.muug.mb.ca/pipermail/roundtable/attachments/20101110/fe22d691/attachment.html 


More information about the Roundtable mailing list