我有输入文件(测试(,看起来像这样:
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 --
我正在运行排序命令并尝试找到前 3 个最小值:
sort -nk 6 test | head -3 > output.txt
但它是我的结果(输出.txt(我得到这个:
MarkerName Allele1 Allele2 Weight Zscore P-value Direction
rs7210970 a g 2.00 1.724 0.08462 ++
rs8065651 t c 2.00 -1.345 0.1787 --
这显然不是好的结果。
你能帮忙吗?
首先,您需要删除文件中的标题行。
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