- 论坛徽章:
- 307
|
- #!/usr/bin/perl
- use strict;
- use warnings;
- my %hStat;
- while (<>){
- my ($key, $min, $vals) = /\A((?:\w+\|){2})(\d+)\|((?:\d+\|)+)/g;
- $vals = [split (/\|/, $vals)];
- if (!exists ($hStat{$key})){
- @{$hStat{$key}}{"Min", "Vals"} = ($min, $vals);
- next;
- }
- my $Vals = $hStat{$key}{"Vals"};
- $Vals->[$_] += $vals->[$_] for 0 .. scalar(@$vals) - 1;
- $hStat{$key}{"Min"} = $min if ($hStat{$key}{"Min"} > $min);
- }
- print $_, join ("|", $hStat{"$_"}{"Min"}, @{$hStat{"$_"}{"Vals"}}, ""), "\n" for keys %hStat;
复制代码 20160101|420123197911215144|612|10000|30000|200|
20160101|42012319891122492X|602|20000|300|30000|
|
|