+ -
当前位置:首页 → 问答吧 → 请教用awk汇总统计一题!

请教用awk汇总统计一题!

时间:2011-05-16

来源:互联网

本帖最后由 psfan 于 2011-05-16 10:14 编辑

有如下数据:
姓名 科目 成绩
John A     50
John B     77
Alice C     33
Alice D     44
Alice E     88
Kate B     67
=============

要求输出:
姓名 总成绩 科目数
John  127     2
Alice  165     3
Kate  67       1

人数=3
总分=359
=============

数据特点:人数不确定,每个人参加科目不相同,输出要求统计每个人总成绩和参加科目数,最后统计总人数和所有人分数总和。
我现在卡在不知如何定义可变数组来添加不同的人,诚心请教高手给个例子。

作者: psfan   发布时间: 2011-05-16

用$1当下标

作者: waker   发布时间: 2011-05-16



QUOTE:
用$1当下标
waker 发表于 2011-05-16 10:01




    久仰waker大名,原来awk可以用字符串作数组下标。

作者: psfan   发布时间: 2011-05-16

  1. awk 'NR>1{a[$1]+=$3;b[$1]++;c+=$3}END{print "姓名 总成绩数 科目数";for(i in a){print i,a[i],b[i];d++};print "\n人数="d"\n总分="c}' file
复制代码

作者: where27   发布时间: 2011-05-16

热门下载

更多