我有一个制表符分隔的文件,如查找“N”最小和“N”的最大值相对于文件中的一列,打印特定的行
Jack 2 98 F
Jones 6 25 51.77
Mike 8 11 61.70
Gareth 1 85 F
Simon 4 76 4.79
Mark 11 12 38.83
Tony 7 82 F
Lewis 19 17 12.83
James 12 1 88.83
我想找到N个最低值和N个最大值(超过5)在最后一次打印具有这些值的行。我想忽略与E的行。例如,如果我想最小的两个值并在上述数据的最大值,我的输出将是
最小情况下
Simon 4 76 4.79
Lewis 19 17 12.83
最大情况下
James 12 1 88.83
Mike 8 11 61.70
我可以忽略第四列中没有数值的列
awk -F "\t" '$4+0 != $4{next}1' inputfile.txt
I还可管这个输出和发现使用
awk -F "\t" '$4+0 != $4{next}1' inputfile.txt |awk 'NR == 1 || $4 < min {line = $0; min = $4}END{print line}'
并且类似地用于最大值一个最小值,但如何这个扩展到多于一个的值如上面的玩具实施例2倍的值,10例为我真实的数据。
你应该提到的是'asorti'需要'GNU awk' – Jotne