免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1971 | 回复: 7
打印 上一主题 下一主题

sort 的时候列为空的情况 [复制链接]

论坛徽章:
2
白羊座
日期:2013-09-12 21:13:11酉鸡
日期:2014-12-18 13:56:26
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-03-09 17:05 |只看该作者 |倒序浏览
本帖最后由 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列进行排序。
他把为空的列忽略了....

求解决办法....

论坛徽章:
0
2 [报告]
发表于 2011-03-09 17:15 |只看该作者
10000008  怎么会在第9列 ?

论坛徽章:
2
白羊座
日期:2013-09-12 21:13:11酉鸡
日期:2014-12-18 13:56:26
3 [报告]
发表于 2011-03-09 17:17 |只看该作者
tab分割,考过来的时候忽略了......

论坛徽章:
0
4 [报告]
发表于 2011-03-09 17:21 |只看该作者
不明白你什么意思,为什么tab分割,就考过来忽略了?
把需求说清楚,并且数据格式要给对了

论坛徽章:
2
白羊座
日期:2013-09-12 21:13:11酉鸡
日期:2014-12-18 13:56:26
5 [报告]
发表于 2011-03-09 17:34 |只看该作者
不好意思,没说明白,tab分割:\t分割,是需求,这个没法改
内容有为空的情况,保存null。

论坛徽章:
0
6 [报告]
发表于 2011-03-09 17:57 |只看该作者
sort 默认可不会去数你的tab个数,你觉得是第9列,sort看来就不是第9列了,
这样试试,指定separator:

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

论坛徽章:
2
白羊座
日期:2013-09-12 21:13:11酉鸡
日期:2014-12-18 13:56:26
7 [报告]
发表于 2011-03-09 18:05 |只看该作者
谢谢,测试之后好用,十分感谢,有一个问题不明白

sort 默认分割应该就是\t吧,为什么还需要指定?

论坛徽章:
0
8 [报告]
发表于 2011-03-09 18:06 |只看该作者
默认是会合并多个空格或者tab,   指定后就是单个了
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP