Chinaunix
标题:
sort 的时候列为空的情况
[打印本页]
作者:
lssliu
时间:
2011-03-09 17:05
标题:
sort 的时候列为空的情况
本帖最后由 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列进行排序。
他把为空的列忽略了....
求解决办法....
作者:
seeLnd
时间:
2011-03-09 17:15
10000008 怎么会在第9列 ?
作者:
lssliu
时间:
2011-03-09 17:17
tab分割,考过来的时候忽略了......
作者:
seeLnd
时间:
2011-03-09 17:21
不明白你什么意思,为什么tab分割,就考过来忽略了?
把需求说清楚,并且数据格式要给对了
作者:
lssliu
时间:
2011-03-09 17:34
不好意思,没说明白,tab分割:\t分割,是需求,这个没法改
内容有为空的情况,保存null。
作者:
seeLnd
时间:
2011-03-09 17:57
sort 默认可不会去数你的tab个数,你觉得是第9列,sort看来就不是第9列了,
这样试试,指定separator:
sort -t$'\t' ....
作者:
lssliu
时间:
2011-03-09 18:05
谢谢,测试之后好用,十分感谢,有一个问题不明白
sort 默认分割应该就是\t吧,为什么还需要指定?
作者:
seeLnd
时间:
2011-03-09 18:06
默认是会合并多个空格或者tab, 指定后就是单个了
欢迎光临 Chinaunix (http://bbs.chinaunix.net/)
Powered by Discuz! X3.2