次のファイルを検討してください。
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
努力する:
awk -F, '{a[$2]+=$5};END{for(i in a)print i","a[i]}' <file
知っておくべきことPOSIX awk の配列ナビゲーション順序が指定されていません。。
答え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";
}
必要に応じてこれを1行に圧縮できます。