join 按两个文件的相同字段合并

1.命令功能

join对每一对具相同内容的输入行,合并为一行输出。默认情况是把输入的第一个字段作为连接字段,字段间用空格隔开。

2.语法格式

join  option  file1  file2

join  选项   文件1  文件2

参数说明


参数


参数说明


-a 文件号


输出文件中不匹配的行,文件号可选值1或2,1代表文件1,2代表文件2


-i


比较字段忽略大小写


-1 字段


以第1个文件的指定字段为基础进程合并


-2 字段


以第2个文件的指定字段为基础进程合并

3.使用范例

范例1 合并文件

[[email protected] ~]# cat a.txt

王小雪  23岁

李雪    21岁

小石头  8岁

王大锤  30岁

[[email protected] ~]# cat b.txt

王大锤 男

李雪   女

王二毛 男

[[email protected] ~]# join a.txt b.txt

join: 文件1 没有被正确排序

[[email protected] ~]# sort a.txt > a.txt_1    <----对a.txt进行排序

[[email protected] ~]# join a.txt_1 b.txt

join: 文件2 没有被正确排序

王大锤 30岁 男

[[email protected] ~]# sort b.txt > b.txt_2   <----对b.txt进行排序

[[email protected] ~]# join a.txt_1 b.txt_2

李雪 21岁 女

王大锤 30岁 男

原文地址:https://www.cnblogs.com/joechu/p/8947582.html

时间: 2024-10-12 11:59:59

join 按两个文件的相同字段合并的相关文章

关于left join连接查询 两张表里有同名字段的问题

左连接查询在开发中很常用,但有个问题常常会遇到,两个表中有同名字段时,比如左右表都有一个id字段,会造成查询结果中左表的id值被右表的id值覆盖掉(大部分php框架都是这个效果),而且还不会报错,容易留下隐蔽的bug!解决办法很简单,给同名字段用AS起别名.例如:order表,farmer表都含有id字段, $sql ="SELECT *,i.`id` AS sid from hr_users_identity as i left join hr_student as s on i.`user_

两个文件比较之comm命令

comm命令可用于两个文件之间的比较.它有很多不错的选项可用来调整输出,以便我们执行交集.求差(difference)以及差集操作.? 交集:打印出两个文件所共有的行.? 求差:打印出指定文件所包含的且互不相同的那些行.? 差集:打印出包含在文件a中,但不包含在其他指定文件中的那些行. 假设现在有两个文件a和b,内容分别是:a(1,2,3),b(3,4,5).那么,对这两个文件进行操作的结果如下.交集:3.求差:1,2,4,5.差集(a):1,2. 需要注意的是comm必须使用排过序的文件作为输

awk 对两个文件进行合并操作

1.awk命令概念 $0 表示一个文本中的一行记录 $1...N 表示一行中的第 1...N 字段 FNR     The input record number in the current input file.  #已读入当前文件的记录数 NR      The total number of input records seen so far.      #已读入的总记录数 next    Stop processing the current input record. The nex

5:查询两表中的所有字段,满足性别为‘男’的记录(使用语句块)

5:查询两表中的所有字段,满足性别为'男'的记录 1.先创建表t_code_sex 2.创建表t_employee 3.编辑数据 4.执行pl/sql语句块 ---pl/sql语句块查询满足性别为男的 declare type t_employee_record_type is record( v_empid t_employee.emp_id%type, v_emp_name t_employee.emp_name%type, v_sex_name t_code_sex.name%type);

快速遍历对比两个文件下的md5值

[[email protected] Activity]# find /opt/xyrpg/rpgserver_s1/XMLData/Activity/ -type f -exec md5sum {} \;|sed 's/rpgserver_s1/rpgserver_s2/'|md5sum -c /opt/xyrpg/rpgserver_s2/XMLData/Activity/ActivityCondition.xml: FAILED /opt/xyrpg/rpgserver_s2/XMLDat

比较两个文件中,一个文件比另一个文件多的行

1. 该脚本用来比较两个文件中,其中一个文件比另一个文件多的行,常用来工作环境中,对比得出多余的ip地址 #!/bin/bash #different in file1 and file2 #author:vaedit #date:2017/8/20 #read -p "请输入第一个文件路径" file1 #read -p "请输入第二个文件路径" file2 function print_help(){ echo "该脚本只用来对比一个文件比另一个文件多

老男孩教育每日一题-第84天-两个文件,把第一个文件中的第2、3行内容添加到第二个文件的第3行后面

两个文件如下: [[email protected] ~]# cat 1.txt  111 222 333 [[email protected] ~]# cat 2.txt AAA bbb ccc ddd 要求修改后的文件 [[email protected] ~]# cat 2.txt  AAA bbb ccc 222 333 ddd `` 参考答案: 方法1: [[email protected] ~]# sed -n 2,3p 1.txt |xargs |sed -r 's# #\\n#g

NNER JOIN连接两个表、三个表、五个表的SQL语句

NNER JOIN连接两个表.三个表.五个表的SQL语句 2013-04-14 15:13:11来源:西部e网作者: SQL INNER JOIN关键字表示在表中存在至少一个匹配时,INNER JOIN 关键字返回行. SQL INNER JOIN关键字表示在表中存在至少一个匹配时,INNER JOIN 关键字返回行. 1.连接两个数据表的用法: FROM Member INNER JOIN MemberSort ON Member.MemberSort=MemberSort.MemberSor

linux 如何删除文件夹下面的文件和文件夹,只保留两个文件

# 删除目录下那两个文件之外的所有文件 find dir/ -type f ! -name file1 -a ! -name file2 | xargs rm -f # 删除所有空目录(非空目录不会被删除,但是会出错误信息,可以忽略) find dir/ -type d | xargs rmdir -p 使用bash shell删除目录中的特定文件的3种方法_linux shell_脚本之家http://www.jb51.net/article/51575.htm