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
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,如果列位意犹未尽的话,我感觉大家可以读一下我下面给的链接,很赞
文章作者:simaopig
本文地址:http://www.xiaoxiaozi.com/2009/11/17/1642/
版权所有 © 转载时必须以链接形式注明作者和原始出处!
抢沙发
[回复]
@要饭的
呵呵,现在都没有人抢沙发了。呼。
[回复]
呃,技术贴…………我要地板好了……
[回复]