join命令
功能:“将两个文件中指定栏位相同的行连接起来”,即按照两个文件中共同拥有的某一列,将对应的行拼接成一行。
join [options] file1 file2
注:这两个文件必须在已经在此列上是按照相同的规则进行了排序。
join选项
-a FILENUM:除了显示匹配好的行另外将指定序号(1或2)文件中部匹配的行显示出来
-e EMPTY:将需要显示但是文件中不存在的域用此选项指定的字符代替
-i :忽略大小写
-j FIELD :等同于 -1 FIELD -2 FIELD,-j指定一个域作为匹配字段
-o FORMAT:以指定格式输出
-t CHAR :以指定字符作为输入输出的分隔符
join 默认以空白字符做分隔符(空格和\t),可以使用 join -t $'\t'来指定使用tab做分隔符
-v FILENUM:与-a相似 但值显示文件中没匹配上的行
-1 FIELD:以file1中FIELD字段进行匹配
-2 FIELD:以file2中FIELD字段进行匹配
--help :打印命令帮助文件
例子:
文件 file1.txt
aa 1 2
bb 2 3
cc 4 6
dd 3 3
文件file2.txt
aa 2 1
bb 8 2
ff 2 4
cc 4 4
dd 5 5
1.join file1.txt file2.txt
输出:aa 1 2 2 1
bb 2 3 8 2
默认已两个文件的第一行做匹配字段,默认以空格(不限个数)做分隔符。
2.join -j 1 file1.txt file2.txt
输出:aa 1 2 2 1
bb 2 3 8 9
-j选项 指定了以两个文件中第一列做匹配字段 等同于join file1.txt file2.txt
3. join -1 2 -2 3 file1.txt file2.txt
输出: 1 aa 2 aa 2
2 bb 3 bb 8
4 cc 6 ff 2
4 cc 6 cc 4
以第一个文件的第二列和第二个文件的第三列做匹配字段。由于第二个文件中第三列的两个4 都与第一个文件中第三行因此输出
4 cc 6 ff 2
4 cc 6 cc 4
4 join -o 1.1 -o 1.2 -o 1.3 -o 2.1 -o 2.2 -o 2.3 -e 'empty' -a 1 file1.txt file2.txt
输出: aa 1 2 aa 2 1
bb 2 3 bb 8 2
cc 4 6 empty empty empty
dd 3 3 empty empty empty
-o 指定 将file1的1,2,3列,file2的1,2,3 列都输出。-a指定将file1中不匹配的行也输出,但是file2中没有与file1后两行对应的字段,因此使用empty补齐。
5.join -v 1 file1.txt file2.txt
输出: cc 4 6
dd 3 3
-v 1 将file1中不匹配的行输出
PS:join命令和数据库中的join命令很类似。
虽然file1和file2都已经排序,但是由于在第三行时开始不匹配因此只匹配上了前两行,后面的行虽然字段也可以对应但是以不能匹配。join命令,对文件格式的要求非常强,如果想要更灵活的使用,可用AWK命令,参加AWK实例
6. join 标准输入
有时我们需要将多个格式相同的文件join到一起,而join接受的是两个文件的指令,此时我们可以使用管道和字符“-"来实现
join file1 file2 | join - file3 | join - file4
这样就可以将四个文件 连接到 一起了。
相关推荐
本文将深入探讨Oracle的JOIN用法,包括内连接(INNER JOIN)、外连接(LEFT JOIN, RIGHT JOIN, FULL JOIN)以及自然连接(NATURAL JOIN),并结合实例进行说明。 1. **内连接(INNER JOIN)**: 内连接返回两个表中满足特定...
SQL 中的左外连接、内连接、右外连接用法详解 SQL 中的连接操作是数据库管理系统中最基本的操作之一,它能够将多个表中的数据结合起来,生成一个新的结果集。本文将对 SQL 中的左外连接、内连接、右外连接进行详细...
以上就是对Java线程中wait、await、sleep、yield、join用法的总结。这些方法在实际开发中,对于控制多线程运行的时序和协调非常关键。理解这些方法的正确使用方式是掌握Java并发编程的基础。同时,使用时需特别注意...
在这个“SQL之JOIN用法完全版”中,我们将深入探讨JOIN的不同类型及其应用。 1. **INNER JOIN**: INNER JOIN返回两个表中匹配的行。这意味着只有当第一个表中的某行与第二个表中的某行在指定的列上具有相同的值时...
当使用LEFT OUTER JOIN时,如果没有相应的子记录,子表的相关列将填充NULL值。在不指定任何参数的情况下,TO ALL, TO MULTIPLE, 和 TO UNIQUE 对LEFT OUTER JOIN的影响并不明显。但是,当UNIQUE被替换为ALL或...
SQL join 完全用法 SQL join 完全用法 学习sql join
### (Left join , Right Join, Inner Join)用法详解 #### 一、基本概念与应用场景 在数据库查询语言SQL中,连接(Join)是一种非常重要的操作,它允许我们结合两个或多个表的数据来检索信息。根据不同的连接方式,...
### SQL语句中JOIN的用法详解 在SQL查询语言中,`JOIN`是一个非常重要的概念,它允许我们从两个或多个表中提取数据。通过使用不同类型的JOIN操作,我们可以根据表之间的关系来灵活地组织数据。下面我们将详细介绍几...
MySQL JOIN 语法说明与 INNER JOIN 语法用法实例 本文档详细介绍了 MySQL 中的 JOIN 语法,包括 INNER JOIN、LEFT JOIN、RIGHT JOIN、FULL JOIN 等,并提供了实际的实例来说明 JOIN 的用法。 首先,MySQL 的 JOIN ...
4. **Join(合)**:当子任务完成后,原始任务会使用`join()`方法等待所有子任务的结果,然后合并结果或继续执行后续逻辑。 5. **工作窃取**:每个工作线程除了处理自己的任务队列外,还会尝试“窃取”其他线程的...
本篇文章将深入探讨LEFT JOIN、RIGHT JOIN以及INNER JOIN的用法,并通过实例进行对比,帮助理解它们之间的差异。 1. LEFT JOIN(左连接) LEFT JOIN返回所有左表(在本例中为A表)的记录,即使在右表(B表)中没有...
在本文中,我们将深入探讨CI框架(CodeIgniter)中数据库查询的join用法。CI框架是一个流行的PHP MVC(模型-视图-控制器)框架,它提供了简洁且强大的数据库交互功能。当我们需要从多个相关表中获取数据时,join操作...
在了解join用法前,我们需要先熟悉列表的基本概念。列表(list)在Python中是一种可变的序列类型,可以包含多个值,这些值可以是任意的数据类型,比如字符串、数字、甚至其他列表。列表使用方括号[]定义,元素之间用...
本文将详细解释MySQL Join操作的使用方法,并着重讨论在实际应用中如何进行优化。 首先,Join操作的正确使用对于获取正确结果至关重要。基本的Join类型包括INNER JOIN、LEFT JOIN、RIGHT JOIN和FULL JOIN等。 INNER...
在这个超详细的分析中,我们将深入探讨LEFT JOIN、RIGHT JOIN以及INNER JOIN的用法。 1. LEFT JOIN(左连接) LEFT JOIN返回所有左表(在本例中为表A)的记录,即使在右表(表B)中没有匹配的记录。如果右表中没有...
在大数据处理领域,Hadoop MapReduce 是一种广泛使用的分布式计算框架。在处理涉及多数据集的任务时,Join 操作是必不可少的,它用于合并来自不同数据源的相关数据。本文主要探讨了两种 MapReduce 中的 Join 实现:...
本文将深入探讨Map JOIN和Reduce JOIN两种在Hadoop中实现JOIN的方法,并通过代码示例来阐述它们的工作原理。 1. Map JOIN: Map JOIN在Hadoop中主要应用于小表与大表的连接。小表的数据可以完全加载到内存中,而大...
尽管每个系统可能略有不同,但JOIN的基本概念和用法在大多数SQL方言中是通用的。 综上所述,理解并熟练运用INNER JOIN和OUTER JOIN是提升SQL查询能力的关键步骤。在实际工作中,根据需求选择合适的JOIN类型,能帮助...