以自然的方式对制表符分隔的文本文件的字母数字和数字列进行排序

时间:2014-06-12 15:20:44

标签: linux bash sorting unix command-line

我正在尝试根据所有两列

对文件进行排序

例如:

  


chr19 1070019 1070020   
chr16 869712 869713   
chr1 1378131 1378132   
chr12 189386 189387   
chr4 254941 254942   
chr16 1476500 1476501   
chr2 1476810 1476811   
chr19 313283 313284   
chr17 595817 595818   
chr18 656897 656898   
chr19 1061829 1061830

我试过sort -t $\t -k1,1 2,2 <filename>但是没有工作。

我想根据第一列按第一列和第二列对输出进行排序。 我想做一个自然的事。不是词法排序。

例如:

  


chr1 1378131 1378132   
chr2 1476810 1476811   
chr4 254941 254942   
chr12 189386 189387   
chr16 869712 869713   
chr16 1476500 1476501   
chr17 595817 595818   
chr18 656897 656898   
chr19 313283 313284   
chr19 1061829 1061830   
chr19 1070019 1070020

有人有任何想法吗?

1 个答案:

答案 0 :(得分:2)

这应该照顾它

sort -k1.4,1n -k2,2n file