+ -
当前位置:首页 → 问答吧 → sort 的时候列为空的情况

sort 的时候列为空的情况

时间:2011-03-09

来源:互联网

本帖最后由 lssliu 于 2011-03-09 17:31 编辑

现有文件使用Tab分割,我是用第9列排序                                                                                                        

文件内容        
第1列 第2列 第3列 第4列 第5列 第6列 第7列 第8列     第9列          第10列    第11列 第12列    第13列    第14列
1        1        1                      1                        10000001        C1        C2        C3        C4        9
2        1                                1                        10000002        C1        C2        C3        C4        8
3        1                1              1                        10000003        C1        C2        C3        C4        7
4        1                        1      1                        10000004        C1        C2        C3        C4        6
5        1                                1                        10000005        C1        C2        C3        C4        5
6        1                                1        1              10000006        C1        C2        C3        C4        4
7        1                                1                1      10000007        C1        C2        C3        C4        3
8        1                                1                        10000008        C1        C2        C3        C4        2

使用的命令
sort -s -k9,9 XXX.dat

结果
8       1                               1                       10000008        C1      C2      C3      C4      2
5       1                               1                       10000005        C1      C2      C3      C4      5
2       1                               1                       10000002        C1      C2      C3      C4      8
1       1       1                      1                       10000001        C1      C2      C3      C4      9
3       1               1              1                       10000003        C1      C2      C3      C4      7
4       1                       1      1                       10000004        C1      C2      C3      C4      6
6       1                               1      1               10000006        C1      C2      C3      C4      4
7       1                               1              1       10000007        C1      C2      C3      C4      3

第9列应该是10000008对应的列。现在出现的现象是按照有内容的第9列进行排序。
他把为空的列忽略了....

求解决办法....

作者: lssliu   发布时间: 2011-03-09

10000008  怎么会在第9列 ?

作者: seeLnd   发布时间: 2011-03-09

tab分割,考过来的时候忽略了......

作者: lssliu   发布时间: 2011-03-09

不明白你什么意思,为什么tab分割,就考过来忽略了?
把需求说清楚,并且数据格式要给对了

作者: seeLnd   发布时间: 2011-03-09

不好意思,没说明白,tab分割:\t分割,是需求,这个没法改
内容有为空的情况,保存null。

作者: lssliu   发布时间: 2011-03-09

sort 默认可不会去数你的tab个数,你觉得是第9列,sort看来就不是第9列了,
这样试试,指定separator:

sort  -t$'\t'   ....

作者: seeLnd   发布时间: 2011-03-09