如何使用 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
并搜索指定排序字段了解更多信息。