mlebel has asked for the wisdom of the Perl Monks concerning the following question:
Hello everyone
I have been trying for quite some days now to find a way to get the complete opposite end results of the following script. I have read countless pages on hashes and matching but i can't figure this out...
This scripts below will get you all the matching lines within a file ( listed below as __TMPDATA__ ) matched from __DATA__ and print them out.
#!/usr/bin/perl use warnings; use strict; my $tmpdata = "tmpdata"; my $DestDevice = "Box"; my %data; open my $TMPDATA, "<", "$tmpdata" or die "$!"; while (<$TMPDATA>) { next if (/^(?:$|sh|\s*Source|^$DestDevice|Accounting)/); my @fields = split; push @{ $data{$fields[1]} }, [ @fields[0,2,3] ]; } close $TMPDATA; while (<DATA>) { chomp; for my $match (@{ $data{$_} }) { my @Results = join "\t", $match->[0], $_, @{$match}[1,2]; print @Results, "\n"; } } exit; __DATA__ 10.2.9.2 10.2.9.3 10.2.9.6 __TMPDATA__ Source Destination Packets Bytes 15.254.32.120 10.2.9.2 5 504 209.68.19.130 10.2.9.4 33 15941 17.149.36.162 10.2.9.3 14 3416 17.149.36.15 10.2.9.3 14 3404 67.148.147.65 10.2.9.5 57 39207 8.8.8.8 10.2.9.6 84 8006 Accounting data age is 0w1d Box# __ENDTMPDATA__
I am looking for the following output(non matching):
209.68.19.130 10.2.9.4 33 15941 67.148.147.65 10.2.9.5 57 39207
Any Idea's?
Thanks!
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re: Trying to get the complete opposite end results
by toolic (Bishop) on Feb 15, 2012 at 14:16 UTC | |
|
Re: Trying to get the complete opposite end results
by SuicideJunkie (Vicar) on Feb 15, 2012 at 14:07 UTC | |
|
Re: Trying to get the complete opposite end results
by locked_user sundialsvc4 (Abbot) on Feb 15, 2012 at 14:37 UTC | |
|
Re: Trying to get the complete opposite end results
by Marshall (Canon) on Feb 15, 2012 at 20:44 UTC | |
|
Re: Trying to get the complete opposite end results
by jwkrahn (Abbot) on Feb 15, 2012 at 21:13 UTC | |
|
Re: Trying to get the complete opposite end results
by mlebel (Hermit) on Feb 16, 2012 at 12:40 UTC |