我有一个如下所示的文件,我想保留在第三个字段上具有最高值的第一个和第二个字段之间的组合(带有箭头的那些,实际文件中不包含箭头)。
1 1 10
1 1 12 <-
1 2 6 <-
1 3 4 <-
2 4 32
2 4 37
2 4 39
2 4 40 <-
2 45 12
2 45 15 <-
3 3 12
3 3 15
3 3 17
3 3 19 <-
3 15 4
3 15 9 <-
4 17 25
4 17 28
4 17 32
4 17 36 <-
4 18 4 <-
Run Code Online (Sandbox Code Playgroud)
为了有这样的输出:
1 1 12
1 2 6
1 3 4
2 4 40
2 45 15
3 3 19
3 15 9
4 17 36
4 18 4
Run Code Online (Sandbox Code Playgroud)
我想也许我只是在玩sort和uniq命令,但我弄得一团糟。
有任何想法吗?
非常重要的注意事项:条目从一开始就没有整齐地排序,我只是使用 sort -k1,1 -k2,2 -k3,3
提前谢谢各位
这有点有趣,但是:
sort -nr myfile.txt | rev | uniq -f1 | rev | sort -n
Run Code Online (Sandbox Code Playgroud)
输出:
1 1 12
1 2 6
1 3 4
2 4 40
2 45 15
3 15 9
3 3 19
4 17 36
4 18 4
Run Code Online (Sandbox Code Playgroud)
怎么运行的:
uniq)可能不是世界上最有效的,但至少每一步都是有意义的。