CnUnix

[알림판목록 I] [알림판목록 II] [글목록][이 전][다 음]
[ CnUnix ] in KIDS
글 쓴 이(By): wang (Chip쟁이)
날 짜 (Date): 2003년 11월 24일 월요일 오후 05시 55분 49초
제 목(Title): Re: [Q] aggregation한 값 구하기




perl을 쓰면 간단히 될 것같습니다만...제가 펄 만능주의자라..-_-;;

#!/bin/perl -w

while(<>){
    chomp;
    if(/^\s*$/){next;}
    $_ =~ s/^\s*//;
    @items = split /\s+/;
    if(defined $hash{$items[0]}){
        $hash{$items[0]}->[0] = $hash{$items[0]}->[0] + $items[2];
        $hash{$items[0]}->[1] = $hash{$items[0]}->[1] + $items[3];
        $hash{$items[0]}->[2] = $hash{$items[0]}->[2] + $items[4];
    }else{
        $hash{$items[0]} = [$items[2],$items[3],$items[4]];
    }
    if(defined $hash2{$items[1]}){
        $hash2{$items[1]}->[0] = $hash2{$items[1]}->[0] + $items[2];
        $hash2{$items[1]}->[1] = $hash2{$items[1]}->[1] + $items[3];
        $hash2{$items[1]}->[2] = $hash2{$items[1]}->[2] + $items[4];
    }else{
        $hash2{$items[1]} = [$items[2],$items[3],$items[4]];
    }
}


print "=======================================================\n";
foreach $key (sort keys %hash){
    print "$key : $hash{$key}->[0], $hash{$key}->[1], $hash{$key}->[2]\n";
}
print "=======================================================\n";

foreach $key (sort keys %hash2){
    print "$key : $hash2{$key}->[0], $hash2{$key}->[1], $hash2{$key}->[2]\n";
}


# 맨아래 출력의 sort가 좀 특이하게 동작합니다.
# 전 어떻게 해야 할지 바로 떠오르지 않네요.
#

[알림판목록 I] [알림판목록 II] [글 목록][이 전][다 음]
키 즈 는 열 린 사 람 들 의 모 임 입 니 다.