答案1
问题是-t:
选项。这告诉 sort 忽略空格并仅使用:
字符作为字段分隔符。
尝试这个:
$ sort -V -k2,2 input.txt
1 chr1:68789:SG 0.6
1 chr1:8885436:SG:0 0.02
9 chr9:68789:IG.0 0.4
10 chr10:6754:SG 0.2
10 chr10:6788554:SG 0.01
16 chr16:68789:IG 0.88
chr position p-value
这仍然使用 -V 选项进行“版本排序”,但仅按第二个字段排序。
更好的是,将标题行保留为第一行:
$ head -n 1 input.txt ; tail -n +2 input.txt | sort -V -k2,2
chr position p-value
1 chr1:68789:SG 0.6
1 chr1:8885436:SG:0 0.02
9 chr9:68789:IG.0 0.4
10 chr10:6754:SG 0.2
10 chr10:6788554:SG 0.01
16 chr16:68789:IG 0.88