从乘以表示的第二个变量中提取具有最大值的行

乔希里基

我有一个我似乎无法解决的问题。

我有一个庞大的制表符分隔的文本文件,类似于:

chr 10 20 20 a
chr 30 40 10 b
chr 30 40 15 b
chr 30 40 11 b

我需要做的是:1)提取所有唯一的行2)如果第5列被多次表示(例如b),则该行在第4列中具有最大值。

因此,在上面的示例中,我需要的行是:

chr 10 20 20 a (这是唯一的行) 
chr 30 40 15 b (这是当第5列被多次表示时第4列中具有最大值的行。

有没有简单的方法可以做到这一点?

伊尔卡楚

那么,将这些行按第五列分组,并为每组打印第四列最大的行?

假设您没有负数:

$ awk '$4 > val[$5] {val[$5] = $4; line[$5] = $0} 
       END {for (x in line) print line[x] }' < foo.txt
chr 10 20 20 a       
chr 30 40 15 b

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章