![열 2의 동일한 필드에 해당하는 열 5의 합계 값](https://linux55.com/image/70609/%EC%97%B4%202%EC%9D%98%20%EB%8F%99%EC%9D%BC%ED%95%9C%20%ED%95%84%EB%93%9C%EC%97%90%20%ED%95%B4%EB%8B%B9%ED%95%98%EB%8A%94%20%EC%97%B4%205%EC%9D%98%20%ED%95%A9%EA%B3%84%20%EA%B0%92.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
노력하다:
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";
}
필요한 경우 이를 한 줄로 압축할 수 있습니다.