#!/usr/local/bin/perl use warnings; use strict; my @FN = map "out-02-$_.txt", '00' .. '18', 20 .. 28, 30 .. 38; for my $filename ( @FN ) { print "$filename\n"; open my $FILE, '<', $filename or die "Can't open $filename: $!"; open my $OUT, '>', "ND_$filename" or die "Can't open ND_$filename: $!"; my ( @BU, @MA1, @MA2 ); while ( my $line = <$FILE> ) { if ( $line =~ /K-INF,LEAK \(B2/ ) { push @BU, ( split ' ', $line )[ 14 ]; } elsif ( $line =~ /0 EID: 93237/ ) { push @MA1, join ' ', ( split ' ', <$FILE> )[ 3 .. 11 ]; } elsif ( $line =~ /0 EID: 95241/ ) { push @MA2, join ' ', ( split ' ', <$FILE> )[ 3 .. 9 ]; } } for my $i ( 0 .. 57 ) { print $OUT join( ' ', $BU[ $i ] || '', $MA1[ $i ] || '', $MA2[ $i ] || '' ), "\n"; } }