Grabbing Chunks of Data from File in Perl -
i scanning error log keyword "warning." when find it, there particular case of warning end information relevant warning newline character. want scan through error log, find keyword warning keep skipping down file until find newline character , once i've found it, analyze chunk , print out.
the format this:
warning! blah blah blah orange warning! blah blah red blah warning! blah blah blah yellow here's code far: use strict; use warnings;
my $file = $argv[0]; $count = 0; open(log, "<",$file) or die "cannot open < input: $!"; $line = <log>; while($line ne "") { if($line =~ /warning/i) { while($line !~/\a\n\z/) { if($line =~ /red/ || $line =~ /yellow/ ||$line =~ /black/) { $count++; } print($line); $line = <log>; } print("just finished chunk.\n"); } $line = <log>; } print($fix, "\n"); however, it's infinite loop throws errors , don't know why.
you read file "chunks" , not lines
local $/ = "\n\n"; while(my $chunk = <log>) { .. print("just finished chunk.\n"); }
Comments
Post a Comment