有 txt 文本格式为 SynLovely 1 SynLovely 1 SynLovely 1 SynLovely 1 SynLovely 1 SynLovely 1 Crifer 1 Crifer 0 Crifer 0 odinsrage 0 Kronar 1 Kronar 1 Kronar 1 Kronar 1 Kronar 1 Kronar 1 Kronar 1 Kronar 1 psycho 1
有差不多三万多行,规则是这样的,前面是玩家,后面是玩家玩的场地,场地有三种,标识 0、1 和 2,玩的场地不同,得到的积分不同,目的是统计所有玩家的积分,然后排序。积分对应关系是这样的: 0 --- 1 分 1 --- 2 分 2 --- 5 分 比如 Crifer 的积分就是一个 1 和两个 0,得分:1x2+2x1=4。我是用 Awk 解决的,代码:
awk '{if($2==1){$2=2}else if($2==0){$2=1}else if($2==2){$2=5};a[$1]+=$2}END{for (i in a){print i,a[i]}}' num | sort -k2 -n -r | head -n 10
KiwiGirl 1009
SynLovely 990
odinsrage 981
....
求大神讲一下用 Ruby 怎么撸?我是 Ruby 新手,一直都在学基础,没接触到文本处理方面,如果能推荐相关的学习资源,就更好了。 小弟感激不尽哈~~