gnu 按一列的字母数字顺序排序,然后在下一列按数字顺序排序?

gnu 按一列的字母数字顺序排序,然后在下一列按数字顺序排序?

如何使用 GNU 排序对文本文件进行排序,首先按一列进行字母数字排序,然后按下一列进行数字排序?

我尝试过sort -n -k1,2 file.txt,但似乎不起作用:

cluster-7402-walk-0270  100     136     SP3     0.959707
cluster-7402-walk-0270  113     137     SP1     0.959707
cluster-7402-walk-0270  117     136     SP2     0.959707
cluster-7402-walk-0270  117     136     SP4     0.959707
cluster-7402-walk-0270  118     140     SMAD4   0.984412
cluster-7402-walk-0270  121     144     ARNT    0.991913
cluster-7402-walk-0270  121     146     AHR     0.991913
cluster-7402-walk-0270  13      24      GTF2A1  0.965496
cluster-7402-walk-0270  13      24      GTF2A2  0.965496

答案1

对于字母数字排序,您需要使用版本排序。应为每个字段指定排序类型,例如,在第一列按字母数字排序,在下一列按数字排序,使用:

sort -k 1,1V -k 2,2n file.txt

查看info sort并搜索指定排序字段了解更多信息。

相关内容