#!/usr/bin/perl use strict; my @lines; open(D, $ARGV[0]) || die("Could not open file!\nUsage: $0 file "); @lines = ; close(D); my %count; foreach (@lines) { next if /^#|^(\s)*$/; chomp; my ($ipa, $ipb, $bytes) = split /\t\s?/; if((grep /$ipb/, %count) && (grep /$ipa/, (%{$count{$ipb}}))) { $count{$ipb}{$ipa}+=$bytes; } else { $count{$ipa}{$ipb}+=$bytes; } } foreach my $key(keys %count){ foreach my $k(keys %{$count{$key}}){ print "${key}\t$k\t$count{$key}->{$k}\n"; } }