BEGIN{FS=","; t1 = 0; n = 0; avg = 0; sum=0; printf("%-10s %9s\n%-10s %9s","Name", "Average", "----", "-------") }
{
if ($3 > 0){
t1 += $3;
n++;
}
sum = 0;
if($3 > 0 && $4 > 0 && $5 >0){
sum = $3 + $4 + $5;
avg = sum / 3;
}
else if($3 < 0 && $4 > 0 && $5 >0){
sum = $4 + $5;
avg = sum / 2;
}
else if($3 > 0 && $4 < 0 && $5 >0){
sum = $3 + $5;
avg = sum / 2;
}
else if($3 < 0 && $4 > 0 && $5 < 0){
sum = $3 + $4;
avg = sum / 2;
}
printf("\n%-10s %7.2f", $1, avg);
}
END{
printf("-------------------\nAverage for Test ! : %f.2", (t1/n));
}
본문 부분 명령은 첫 번째 레코드를 무시해야 합니다.
답변1
블록에 레코드 번호가 매겨진 테스트를 추가하면 됩니다.
NR > 1 {
if ($3 > 0){
t1 += $3;
n++;
}
...