第一列相同的行,如何只取最后一行?
来源: 互联网 发布时间:2016-11-20
本文导语: 有如下格式文本文件,几万行 3 4 3 5 4 2 4 3 4 4 6 3 6 4 7 1 8 3 9 1 9 2 。。。。。。 请问:对于第一列数值相同的行,如何只取最后一行?(没有重复的也要输出)对于上面数据想得到的结果是: 3...
有如下格式文本文件,几万行
3 4
3 5
4 2
4 3
4 4
6 3
6 4
7 1
8 3
9 1
9 2
。。。。。。
请问:对于第一列数值相同的行,如何只取最后一行?(没有重复的也要输出)对于上面数据想得到的结果是:
3 5
4 4
6 4
7 1
8 3
9 2
感谢
3 4
3 5
4 2
4 3
4 4
6 3
6 4
7 1
8 3
9 1
9 2
。。。。。。
请问:对于第一列数值相同的行,如何只取最后一行?(没有重复的也要输出)对于上面数据想得到的结果是:
3 5
4 4
6 4
7 1
8 3
9 2
感谢
|
如果不是这样的话,我想可以用sort来进行对数的第一行进行一下排序,使所有的第一列相同的数字都是挨在一起的。
然后可以先用awk中的NR函数给它加一个行号,那么就会变成:
1 3 4
2 3 5
3 4 2
4 4 3
5 4 4
6 6 3
7 6 4
。。。。
也就是说你原来的第一行变成了第二行,然后用awk从第1行开始,找出第二列相同的行且设置找出来的行数要大于等于1,然后分别读取第一列的行号,并取其中最大的一个行号的这一行(比如说这里是 2 ),那么这样就可以取出相同的行的最后一行!
当然这里要用一个while循环才行,将awk放在里面,到下一个循环的时候就从第3行开始,跟上面的一样将第四行找出来!
上面的从第3行开始找,可以用自加 a=2 a=`expr (a + 1)` 来实现!
不好意思,以上是我看到这个问题时,粗略的一个想法,还没有细想,有时间我再帮你细想下,希望对你有所帮助!
然后可以先用awk中的NR函数给它加一个行号,那么就会变成:
1 3 4
2 3 5
3 4 2
4 4 3
5 4 4
6 6 3
7 6 4
。。。。
也就是说你原来的第一行变成了第二行,然后用awk从第1行开始,找出第二列相同的行且设置找出来的行数要大于等于1,然后分别读取第一列的行号,并取其中最大的一个行号的这一行(比如说这里是 2 ),那么这样就可以取出相同的行的最后一行!
当然这里要用一个while循环才行,将awk放在里面,到下一个循环的时候就从第3行开始,跟上面的一样将第四行找出来!
上面的从第3行开始找,可以用自加 a=2 a=`expr (a + 1)` 来实现!
不好意思,以上是我看到这个问题时,粗略的一个想法,还没有细想,有时间我再帮你细想下,希望对你有所帮助!
您可能感兴趣的文章:
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。