awk使用实例, 得出唯一的第一列和和并排序. awk求和行中字段(类似perl hash的使用)

jackxiang 2009-12-30 18:48 | |

Problem:
------------------------------------------------------------------------------------------------------------------------
比如一个文件为:
a 3
b 2
c 4
a 5
d 1
c 2

我要得到唯一的第一列的总和的前三名
就是
a的和为8
c的和为6
然后再按照和排序
a 8
c 6
b 2
d 1

然后得到前三



Solution:
------------------------------------------------------------------------------------------------------------------------
[root@SGDVG405 zhu]# cat datafile
a 3
b 2
c 4
a 5
d 1
c 2
[root@SGDVG405 zhu]# cat datafile |awk '
{
a[$1] += $2;
}
END{
for(i in a) print i,a[i];}
'
a 8
b 2
c 6
d 1
[root@SGDVG405 zhu]#
最好用sort -k2,2nr 排序

作者:jackxiang@向东博客 专注WEB应用 构架之美 --- 构架之美,在于尽态极妍 | 应用之美,在于药到病除
地址:https://jackxiang.com/post/2429/
版权所有。转载时必须以链接形式注明作者和原始出处及本声明!

评论列表
发表评论

昵称

网址

电邮

打开HTML 打开UBB 打开表情 隐藏 记住我 [登入] [注册]