in reply to Filter out an input file with a given waiver file, and output to a specific file
#! /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;
guys, i still have some problems with this code, anyone has any ideas? Basically, my waiver file won't be larger tan input file, and i want the output format same as input file, just watever mention inside the waiver file, the fourth column value chg to waiver file value, and the status chg from "violated" to "waived"
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^2: Filter out an input file with a given waiver file, and output to a specific file
by poj (Abbot) on Jul 13, 2017 at 07:03 UTC | |
by DespacitoPerl (Acolyte) on Jul 13, 2017 at 08:01 UTC | |
by huck (Prior) on Jul 13, 2017 at 08:15 UTC | |
by soonix (Chancellor) on Jul 13, 2017 at 09:39 UTC |