对具有相同列的两个文件进行排序会产生不同的排序

时间:2015-01-14 17:20:21

标签: bash shell sorting

我很抱歉标题,但我不知道如何解释这个:

我正在尝试对两个文件进行排序,因为我想合并它们,它们看起来像这样:

test1.txt

rs1010735   224915429
rs1010805   38189142
rs10108     114516330
rs1010863   185432942
rs1010891   110712154
rs1010910   61212213
rs1011124   7533164

test2.txt

rs1010735 C
rs1010805 T
rs1010863 T
rs1010891 T
rs10108  C
rs1010910 A
rs1011124 A

我使用sort -k1 test1.txtsort -k1 test2.txt并得到了这个:

test1_sort.txt

rs1010735   224915429
rs1010805   38189142
rs10108 114516330
rs1010863   185432942
rs1010891   110712154
rs1010910   61212213
rs1011124   7533164

test2_sort.txt

rs1010735   C
rs1010805   T
rs1010863   T
rs1010891   T
rs10108     C
rs1010910   A
rs1011124   A

如果两个第一列具有相同的值,为什么会有不同的排序。

我也试过sort -n -s k1,1,但结果相同。

1 个答案:

答案 0 :(得分:2)

添加空格:

$ sort -k 1,1 /tmp/2
rs1010735 C
rs10108  C
rs1010805 T
rs1010863 T
rs1010891 T
rs1010910 A
rs1011124 A
$ sort -k 1,1 /tmp/1
rs1010735   224915429
rs10108     114516330
rs1010805   38189142
rs1010863   185432942
rs1010891   110712154
rs1010910   61212213
rs1011124   7533164