橘子味的心
标题:Linux shell join 命令

Linux shell join 命令用于将两个文件中,指定栏位内容相同的行连接起来。

找出两个文件中,指定栏位内容相同的行,并加以合并,再输出到标准输出设备。

join 命令语法格式

join [-i][-a<1或2>][-e<字符串>][-o<格式>][-t<字符>][-v<1或2>][-1<栏位>][-2<栏位>][--help][--version][文件1][文件2]

参数

-a<1或2>   除了显示原来的输出内容之外,还显示指令文件中没有相同栏位的行。
-e<字符串>   若[文件1]与[文件2]中找不到指定的栏位,则在输出中填入选项中的字符串。
-i , --igore-case   比较栏位内容时,忽略大小写的差异。
-o<格式>   按照指定的格式来显示结果。
-t<字符>   使用栏位的分隔字符。
-v<1或2>   跟-a相同,但是只显示文件中没有相同栏位的行。
-1<栏位>   连接[文件1]指定的栏位。
-2<栏位>   连接[文件2]指定的栏位。
--help   显示帮助。
--version   显示版本信息

范例

假设存在两个文件 demo1.txtdemo2.txt,内容分别如下

[root@localhost ~]# cat demo1.txt  
Hello 95  
Linux 85  
test 30  
[root@localhost ~]# cat demo2.txt 
Hello 2005 
Linux 2009  
test 2006

我们用 join 命令默认的方式比较两个文件,将两个文件中指定字段的内容相同的行连接起来:

[root@localhost ~]# join demo1.txt demo2.txt  
Hello 95 2005 #连接后显示的内容  
Linux 85 2009  
test 30 2006

文件1与文件2的位置对输出到标准输出的结果是有影响的。

下面将命令中的两个文件互换

join demo2.txt demo1.txt

最终在标准输出的输出结果将发生变化

[root@localhost ~]# join demo2.txt demo1.txt  
Hello 2005 95
Linux 2009 85  
test 2006 30

返回上一级

目录

分类