![第 5 列中对应于第 2 列中相同字段的总和值](https://linux22.com/image/70609/%E7%AC%AC%205%20%E5%88%97%E4%B8%AD%E5%AF%B9%E5%BA%94%E4%BA%8E%E7%AC%AC%202%20%E5%88%97%E4%B8%AD%E7%9B%B8%E5%90%8C%E5%AD%97%E6%AE%B5%E7%9A%84%E6%80%BB%E5%92%8C%E5%80%BC.png)
考虑以下文件:
0,2,,,10
0,2,,,15
0,1,,,984
0,2,,,9
1,14,,,5
使用awk
,我需要计算$5
每个 的总价值$2
。
所需的输出如下所示:
2,34
1,984
14,5
答案1
答案2
答案3
我很想使用 perl:
#!/usr/bin/env perl
use strict;
use warnings;
my %things;
while (<>) {
my ( undef, $key, @rest ) = split(/,/);
$things{$key} += pop(@rest);
}
foreach my $key ( sort { $a <=> $b } keys %things ) {
print "$key = $things{$key}\n";
}
如果需要的话,你可以将其压缩为一行。