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

sh/bash/dash/ksh/zsh等Shell脚本
回复
landy114
帖子: 3
注册时间: 2008-10-04 10:01

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

#1

帖子 landy114 » 2008-10-26 1:56

文件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
...........
头像
yjcong
帖子: 2470
注册时间: 2006-02-28 3:11

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

#2

帖子 yjcong » 2008-10-26 3:04

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)} '
一梦三年,
松风依旧,
萝月何曾老.


灵幽听微, 谁观玉颜?
灼灼春华, 绿叶含丹.
头像
yjcong
帖子: 2470
注册时间: 2006-02-28 3:11

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

#3

帖子 yjcong » 2008-10-26 3:05

http://unstableme.blogspot.com/search/label/awk%20array
这里抄的, 自己看看吧。排序可以用sort
一梦三年,
松风依旧,
萝月何曾老.


灵幽听微, 谁观玉颜?
灼灼春华, 绿叶含丹.
landy114
帖子: 3
注册时间: 2008-10-04 10:01

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

#4

帖子 landy114 » 2008-10-26 9:05

非常感谢,高手阿,不知道你怎么找到的,很不错呢...
landy114
帖子: 3
注册时间: 2008-10-04 10:01

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

#5

帖子 landy114 » 2008-10-26 9:54

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
回复