首页 > linux > linux join命令简介
2009十一月17

linux join命令简介

继续上周的任务,抽空搞了会儿统计,再不搞头就要怒了。说实话,对这些东西我一向是比较懒的,而且比较怕。 自己不熟的东西总是不肯下手,能拖就拖,这毛病也实在不像话。等拖的不能再拖了,该问人问人,该求爷爷求爷爷,反正基本上在最后时间的尾巴上把东西搞出来,然后仰天长叹,不过而而。

今天主要要用Linux的join命令,join是什么?连接嘛。

功能说明:将两个文件中,指定栏位内容相同的行连接起来。
语  法:join [-i][-a<1或2>][-e<字符串>][-o<格式>][-t<字符>][-v<1或2>][-1<栏位>][-2<栏位>][--help][--version][文件1][文件2]
补充说明:找出两个文件中,指定栏位内容相同的行,并加以合并,再输出到标准输出设备。

上面的语法里说的很是清楚,下面简要讲一下,规矩不多,大家忍一忍。

参数 意义
-i i在linux命令的参数中,大多数都是忽略大小写的意思,这里也不例外
-a 除了显示出两个文件中相同的那一部分外,根据a后面的参数,1为第一个文件,2为第二个文件,将其自己独特的部分显示出来
-e 若两个join的文件中找不到指定的栏位,则输出该参数后面的字符串
-o 按照指定的格式来显示结果,例如只显示第一个文件的第4列就可以用 -o 1.4
-t 文件中的列分隔符,记住这里是一个字符,字符串是不行滴
-v 根据后面的参数1或2,来显示其中没有的值
-1 指定匹配列为第一个文件中的某列,如果不指定,默认为第一列
-2 指定匹配列为第二个文件中的某列,如果不指定,默认为第一列

数据最有说明力,咱也来一两个小例子,加深一下理解

wulin_tmp.txt
10020836
10022314
10024552
10101706
10129056
10160668
10160769
10163808
10165523
10170074

wulin_old.txt
10017914
10020836
10022314
10024552
10048910
10101706
101261
10129056
10146679
10160668

我想要取二者相同的值,可以直接使用如下语句

join wulin_tmp.txt wulin_old.txt

然而我要是想显示wulin_tmp.txt中有的值,而wulin_old.txt中没有的值可以用如下语句

join -v1 wulin_tmp.txt wulin_old.txt

更多的参数我今天也试过了,全部OK,如果列位意犹未尽的话,我感觉大家可以读一下我下面给的链接,很赞

使用Linux 文本工具简化数据的提取(3) – Unix爱好者家园

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

3 Responses to “linux join命令简介”

  1. #1 要饭的 回复 | 引用 Post:2009-11-18 10:28

    抢沙发

    [回复]

  2. #2 simaopig 回复 | 引用 Post:2009-11-18 10:29

    @要饭的
    呵呵,现在都没有人抢沙发了。呼。

    [回复]

  3. #3 Jutoy 回复 | 引用 Post:2009-11-18 18:35

    呃,技术贴…………我要地板好了……

    [回复]

发表评论

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