码迷,mamicode.com
首页 > 其他好文 > 详细

awk与sort去重复取最值

时间:2014-08-27 13:11:08      阅读:235      评论:0      收藏:0      [点我收藏+]

标签:awk sort

文件a内容:

1     34
1     23
1     12
2     54
2     21
3     54
3     32
3     21
4     65
4     12
5     234
5     65
5     12

想从文件a中得到第一列重复值中对应第二列的最大值和最小值。即:

最大值

1     34
2     54
3     54
4     65
5     234

最小值

1     12
2     21
3     21
4     12
5     12

一句程序的写法:

1、得到最大值:sort -s -k1n -k2nr a | awk ‘!a[$1]++‘

2、得到最小值:sort -s -k1n -k2n a | awk ‘!a[$1]++‘

解析:

sort命令作用是排序,参数:

-s, --stable   禁用last-resort 比较以稳定比较算法    #这里可以不使用这个参数

-k, --key=位置1[,位置2] 在位置1 开始一个key,在位置2 终止(默认为行尾)  

-n, --numeric-sort  根据字符串数值比较

-r, --reverse   逆序输出排序结果    #默认增序排列输出

awk ‘!a[$1]++‘  以第一列去重复,默认输出重复的第一个值

本文出自 “1058223494” 博客,请务必保留此出处http://4708705.blog.51cto.com/4698705/1545536

awk与sort去重复取最值

标签:awk sort

原文地址:http://4708705.blog.51cto.com/4698705/1545536

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!