当前位置: 技术问答>linux和unix
linux sort 如何删除指定重复列 的行记录? [问题点数:100分]
来源: 互联网 发布时间:2017-05-06
本文导语: 举个很简单的列子。我只有这样的一个文本数据,还有一些列没有显示出来,大约有500W条数据。文件大小约2G,数据内容如下。 1,2851070,1373762396622 1,2851070,1373764594902 13,2851070,1373762396630 13,2851070,1373764594910 16,2851070,137376239...
举个很简单的列子。我只有这样的一个文本数据,还有一些列没有显示出来,大约有500W条数据。文件大小约2G,数据内容如下。
1,2851070,1373762396622
1,2851070,1373764594902
13,2851070,1373762396630
13,2851070,1373764594910
16,2851070,1373762396628
16,2851070,1373764594908
17,2851070,1373764594912
21,2851070,1373762396626
21,2851070,1373764594906
22,2851070,1373764594914
9,2851070,1373762396624
9,2851070,1373764594904
比如
1,2851070,1373762396622
1,2851070,1373764594902
这两条数据第一列和第二列重复,那么我只保留第三列的最大值。
所有只保留1,2851070,1373764594902,
有点象sql语句,
select colum1,colum2,max(colum3) from tb group colum1,colum2
高分求linux命令?求大牛帮忙解决一下
1,2851070,1373762396622
1,2851070,1373764594902
13,2851070,1373762396630
13,2851070,1373764594910
16,2851070,1373762396628
16,2851070,1373764594908
17,2851070,1373764594912
21,2851070,1373762396626
21,2851070,1373764594906
22,2851070,1373764594914
9,2851070,1373762396624
9,2851070,1373764594904
比如
1,2851070,1373762396622
1,2851070,1373764594902
这两条数据第一列和第二列重复,那么我只保留第三列的最大值。
所有只保留1,2851070,1373764594902,
有点象sql语句,
select colum1,colum2,max(colum3) from tb group colum1,colum2
高分求linux命令?求大牛帮忙解决一下
|
sort -t, -k3nr urfile | awk -F, -v OFS=',' '!a[$1,$1]++'
sort -t, -k3nr urfile | awk -F, -v OFS=',' '!a[$1,$1]++' | sort -t, -k1,1n
|
没有做排序处理,如果你有顺序要求,做一个排序即可:
[seesea@CSDN ~]$ cat file
1,2851070,1373762396622
1,2851070,1373764594902
13,2851070,1373762396630
13,2851070,1373764594910
16,2851070,1373762396628
16,2851070,1373764594908
17,2851070,1373764594912
21,2851070,1373762396626
21,2851070,1373764594906
22,2851070,1373764594914
9,2851070,1373762396624
9,2851070,1373764594904
[seesea@CSDN ~]$ awk -F',' 'ar[$1","$2]