Hm, I'd separate these into "chunks" that are each a file, and worry those apart later. Something like this:
open INFILE, '<', 'infile.txt' or die("Can't read: $!"); # each 'line' is a chunk with 'filename =' delimiting. local $/ = 'filename ='; while (<INFILE>) { s/^s\+//s; # remove starting whitespace. # use a regex capture -- slow but simple. my ($filename, $data) = ($1, $2) if m/^(\w+)\s+pred=\s+(.*?)\s+$/s; open my $OUT, '>', $filname or die("Can't write $filename: $!"); foreach ( split(/\s+|\n/, $data) ) { next unless m/^[-.0-9][0-9.]+/; #skip any empty or malformed lin +es print $OUT $_; } }
Untested, but the principle is sound and somewhat reusable.
In reply to Re: extracting data and saving into seperate files
by radiantmatrix
in thread extracting data and saving into seperate files
by Angharad
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |