首页 > linux > linux 使用join命令时切勿对文件进行数值排序
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

简单的join

join a.txt b.txt
#join: 文件2 没有被正确排序

排序-n后join

sort -n b.txt > c.txt
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

顺便说一下,这是在家里的机器,有这个提示说文件未排序,而公司的FreeBSD上面是什么提示都没有的,郁闷死你。

文章作者:simaopig
本文地址:http://www.xiaoxiaozi.com/2009/12/02/1659/
版权所有 © 转载时必须以链接形式注明作者和原始出处!

2 Responses to “linux 使用join命令时切勿对文件进行数值排序”

  1. #1 LAONB 回复 | 引用 Post:2009-12-03 11:21

    这个我 真的看不懂 :o

    [回复]

  2. #2 aify 回复 | 引用 Post:2009-12-03 20:40

    学习了,不错!

    [回复]

发表评论

:wink: :twisted: :roll: :oops: :mrgreen: :lol: :idea: :evil: :cry: :arrow: :?: :-| :-x :-o :-P :-D :-? :) :( :!: 8-O 8)