Waiver fileformat:abcd123 klmn123 100.00 1000.00 -900.00 (VIOLATED) abcd124 klmn124 100.00 1000.00 -900.00 (VIOLATED) . .and so on
Ps: waiver file is a filter, menas if watever inside it, the similiar content in input file should change to output format like this:klmn124,100.00,2500.00,"justifiedbyChan","Date:14/4" . .and so on
my code is like this:abcd123 klmn123 100.00 1000.00 -900.00 (VIOLATED) abcd124 klmn124 100.00 2500.00 -2400.00 (WAIVED)
Anyone has any ideas?#! /tools/perl/5.8.8/linux/bin/perl use strict; use warnings; # Set up a hash to receive the information my %identifier = (); # Read the violations file into the hash open my $filter, '<', $waiver or die; while (my $vline = <$filter>) { my ($pins2, $threshold2, $newthreshold2, $note1, $note2, $note3, $ +note4, $note5) = split /\s+/, $vline; #$identifier{$pins2}{threshold2} = $threshold2; $identifier{$pins2}{newthreshold2} = $newthreshold2; } #Read input file line by line open my $input, '<', $report or die; open my $output, '>', $result or die; while (my $wline = <$input>){ my ($scenario, $pins1, $threshold1, $newthreshold1, $diff, $status +) = split /\s+/, $wline; print $output "$scenario $pins1 $threshold1 $newthreshold +1 $diff $status\n"; foreach my $okey (keys %identifier) { foreach my $skey (keys %{$identifier{$okey}}) { if (exists $identifier{$okey}) { #my $diff2 = $skey - $threshold1; print $output "$scenario $pins1 $threshold1 $skey +$diff (WAIVED)\n"; } } } } close $filter; close $input; close $output;
In reply to Filter out an input file with a given waiver file, and output to a specific file 2.0 by DespacitoPerl
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |