分页: 1 / 1

用awk统计一组成绩的问题!

发表于 : 2008-10-26 1:56
landy114
文件file中有一下内容,
002,p,English,87,makeup
003,o,English,99,final
002,p,Math,100,final
003,o,Math,88,final
004,y,English,65,final
004,y,Math,67,final
001,q,English,0,final
001,q,Math,88,final
怎样按照学号(第一列),把每个学号的总成绩算出来,如
002,187
003,187
...........

Re: 用awk统计一组成绩的问题!

发表于 : 2008-10-26 3:04
yjcong
cut -d"," -f1,4|awk 'BEGIN{FS=","} NR!=1 {a[$1]++;b[$1]=b[$1]+$2}END{for (i in a) printf("%s %10.0f \n", i, b)} '

Re: 用awk统计一组成绩的问题!

发表于 : 2008-10-26 3:05
yjcong
http://unstableme.blogspot.com/search/label/awk%20array
这里抄的, 自己看看吧。排序可以用sort

Re: 用awk统计一组成绩的问题!

发表于 : 2008-10-26 9:05
landy114
非常感谢,高手阿,不知道你怎么找到的,很不错呢...

Re: 用awk统计一组成绩的问题!

发表于 : 2008-10-26 9:54
landy114
yjcong 写了:cut -d"," -f1,4|awk 'BEGIN{FS=","} NR!=1 {a[$1]++;b[$1]=b[$1]+$2}END{for (i in a) printf("%s %10.0f \n", i, b)} '

不过那个NR!=1是错的哦,要改成NR!=0