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
这样就可以将四个文件 连接到 一起了。
相关推荐
SQL中的left outer join,inner join,right outer join用法详解
oracle外连接(join)详解及详细实例,需要列子的可以看看。
Java线程中wait、await、sleep、yield、join用法汇总,文章里面总结了这些关键字的用法,并且里面带有源码帮助分析用法,此一文就可以理解这些关键字用法,推荐拥有
SQL 之JOIN 用法完全版.rar
不仅描述了join的几种用法,还详细介绍了几种参数的用法
SQL join 完全用法 SQL join 完全用法 学习sql join
(Left join , Right Join, Inner Join)用法详解,对Left join , Right Join, Inner Join完全掌握,由浅入深,真正领悟。
sql语句中join的用法 sql语句中join的用法
本文档描述了在linux操作系统下,shell脚本当中的join工具的使用
SQL语句left join/right join/inner join 的用法比较 SQL语句left join/right join/inner join 的用法比较
1.ServerSocketChannel与SocketChannel通讯 2.java Fork/Join 与ThreadPool使用
MySQL JOIN 语法说明与 INNER JOIN 语法用法实例.docx
本文实例讲述了CI框架数据库查询之join用法。分享给大家供大家参考,具体如下: 用 A表中的每个ID 去查询这个 ID 在 people 表中的信息。语句如下: $this->db->from('A'); $this->db->join('B', 'sites.id = B.id'...
主要介绍了python中列表元素连接方法join用法,实例分析了Python中join方法的使用技巧,非常具有实用价值,需要的朋友可以参考下
c# 使用JOIN子句查询数据库表+数据库c# 使用JOIN子句查询数据库表+数据库c# 使用JOIN子句查询数据库表+数据库
这三者的区别很多人都应该不是很清楚,包括我自己,下面我们一起来看看,如果你使用join连表,缺陷的情况下是inner join,另外,开发中使用的left join和right join属于outer join,而outer join还包括full join....
SQL left join用法,初学者应用