免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1525 | 回复: 4
打印 上一主题 下一主题

请教一个用法。。。百思不得其解 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-12-16 18:49 |只看该作者 |倒序浏览
有文件如下
100006745 2300
100006745 2400
100006745 2500
100021365 1004
100021365 1008
100029154 1023
100031551 3008
100031551 3082
100040441 2398
100040441 3298

希望第一列去重,并且第二列进行比较,只取数值最大的。如:
100006745 2500

想过用awk 数组,可是对那个还是不太熟

百思不能求解,望高手指点一二啊。。多谢多谢。。。

论坛徽章:
0
2 [报告]
发表于 2007-12-16 18:57 |只看该作者
  1. awk '{if($2>a[$1])a[$1]=$2} END{for(i in a)print i" "a[i]}' datafile
复制代码

论坛徽章:
0
3 [报告]
发表于 2007-12-16 20:30 |只看该作者
多谢楼上。。明白了。。。

论坛徽章:
0
4 [报告]
发表于 2007-12-17 01:12 |只看该作者
sort -r data | uniq -w 9
这个行序改变了,不知道符不符合你的要求

[ 本帖最后由 G00GLE 于 2007-12-17 01:13 编辑 ]

论坛徽章:
0
5 [报告]
发表于 2007-12-17 11:20 |只看该作者
两个数组就ok; 一个负责排重 一个负责交换变量~
awk '{a[$1]++;b[$1]=(b[$1]>$2)?b[$1]2}END{for(f in a){print f,b[f],a[f]}}'
呵呵 刚看到2楼的  这个能看重复数量

[ 本帖最后由 nuclearxin 于 2007-12-17 11:22 编辑 ]
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP