Unix sort命令没有给我正确的输出

时间:2019-06-06 15:56:18

标签: sorting unix

我有一个看起来像这样的输入文件(测试):

santorin.SuitableFood

我正在运行排序命令,并试图找到前3个最小值:

santorin.eat((new HorseFood).asInstanceOf[santorin.SuitableFood])

但这是我的结果(output.txt),我得到这个:

MarkerName      Allele1 Allele2 Weight  Zscore  P-value Direction
rs8065651       t       c       2.00    -1.345  0.1787  --
rs12450876      a       g       2.00    -0.496  0.6201  +-
rs7209239       a       t       2.00    1.134   0.2569  ++
rs7210970       a       g       2.00    1.724   0.08462 ++
rs4791114       a       g       2.00    -1.156  0.2476  --
rs10853140      a       g       2.00    0.989   0.3229  ++
rs237316        a       g       2.00    0.738   0.4607  ++
rs11871508      a       g       2.00    -5.527  3.265e-08       --

这显然不是很好的结果。

请帮忙。

1 个答案:

答案 0 :(得分:0)

首先,您需要删除文件中的标题行。
tail -n +2 test

然后排序。为了对浮动值进行排序,使用-g标志。
另外,您还需要确保您的语言环境正确。否则,整理规则将影响结果。
LC_ALL=C sort -bg --key=6,6

所以:
tail -n +2 test | LC_ALL=C sort -bg --key=6,6 | head -3