2009十二月2
linux 使用join命令时切勿对文件进行数值排序
之前我介绍过linux 的join命令和sort命令。有一点没有说明的是,使用join的时候是要对两个比较的文件先排序的。
但是这个排序是要小心进行的,一般使用sort不附加任何参数即可以,因为join实际上是按字符串对两个文件进行“撞”的。所以千万不要使用例如 -n -g这类参数对文件进行排序。
a.txt b.txt内容如下:
a.txt
1
b.txt
3
2
1
21
1
b.txt
3
2
1
21
简单的join
join a.txt b.txt
#join: 文件2 没有被正确排序
#join: 文件2 没有被正确排序
排序-n后join
sort -n b.txt > c.txt
join a.txt c.txt
#1
#join: 文件2 没有被正确排序
join a.txt c.txt
#1
#join: 文件2 没有被正确排序
排序,不做数值排序后join
sort b.txt > c.txt
join a.txt c.txt
#1
join -v1 c.txt a.txt
#2
#21
#3
join a.txt c.txt
#1
join -v1 c.txt a.txt
#2
#21
#3
顺便说一下,这是在家里的机器,有这个提示说文件未排序,而公司的FreeBSD上面是什么提示都没有的,郁闷死你。
文章作者:simaopig
本文地址:http://www.xiaoxiaozi.com/2009/12/02/1659/
版权所有 © 转载时必须以链接形式注明作者和原始出处!
这个我 真的看不懂 :o
[回复]
学习了,不错!
[回复]