我有一个我似乎无法解决的问题。
我有一个庞大的制表符分隔的文本文件,类似于:
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] 删除。
我来说两句