Here's another way. It may be a better way. I've used Tie::File so that, even with very large input files, you won't run into any memory issues.

use strict; use warnings; use Tie::File; my $infile = q{noa.txt}; my $wanted_re = qr{ \A (?> ( Pass \s \# | Elapsed \s Time \s+ : \s+ | CPU \s Time \s+ : \s+ | Virtual \s memory \s size \s+ : \s+ | Resident \s set \s size \s+ : \s+ | Major \s page \s faults \s+ : \s+ ) ( [\d.]+ ) ) }msx; my $last_stat_re = qr{ \A Major \s page \s faults \s+ : \s+ \z }msx; tie my @indata, q{Tie::File}, $infile or die $!; for my $line (@indata) { next if $line !~ $wanted_re; print $2; print $1 =~ $last_stat_re ? qq{\n} : q{, }; } untie @indata;

I dummied up some additional input to what you provided:

$ cat noa.txt ... Pass #123 ... ... Elapsed Time : 1753.2 sec CPU Time : 753.2 sec ... Virtual memory size : 4472.6 MB Resident set size : 4362 MB ... Major page faults : 7153 ... Pass #the salt ... Pass #124 ... ... Elapsed Time : 9753.2 sec CPU Time : 953.2 sec ... Virtual memory size : 9472.6 MB Resident Evil Resident set size : 9362 MB ... Major page faults : 9153 ...

Here's the output:

$ noa.pl 123, 1753.2, 753.2, 4472.6, 4362, 7153 124, 9753.2, 953.2, 9472.6, 9362, 9153

-- Ken


In reply to Re: Multiline RegExp. A Better Way? by kcott
in thread Multiline RegExp. A Better Way? by shoness

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.