首页 > 代码库 > awk与sort去重复取最值
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去重复取最值
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。