我有一个表格文件,其中第一列具有ID,第二列具有数字值。我需要生成一个仅包含每个ID得分最高的行的文件。
所以,我想采取这个:
ES.001 2.33
ES.001 1.39
ES.001 119.55
ES.001 14.55
ES.073 0.35
ES.073 17.95
ES.140 1.14
ES.140 53.88
ES.140 18.28
ES.178 150.27
并生成此:
ES.001 119.55
ES.073 17.95
ES.140 53.88
ES.178 150.27
从bash命令行有没有办法做到这一点?
根据数据类型,排序可能需要很长时间。我们无需排序即可获得结果(但使用更多内存),如下所示:
awk 'a[$1]<$2{a[$1]=$2}END{for(i in a){print(i,a[i])}}' infile
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句