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 显示版本信息。

示例

(1)该实例将创建 demo1 和 demo2 两个文件,然后使用 join 命令以默认的方式比较两个文件,将两个文件中指定字段的内容相同的行连接起来,命令如下:

# 查看 demo1 内容
hxstrive@localhost:~$ cat demo1
Name    Age
Helen   40
Tom     35
Bill    38

# 查看 demo2 内容
hxstrive@localhost:~$ cat demo2
Name    Sex
Helen   Male
Tom     Female
Bill    Male

# 连接两个文件
hxstrive@localhost:~$ join demo1 demo2
Name Age Sex
Helen 40 Male
Tom 35 Female
Bill 38 Male

(2)该实例将创建 demo1 和 demo2 两个文件,然后使用 join 命令以 demo1 的第一列和 demo2 第二列进行比较,将两个文件中指定字段的内容相同的行连接起来,命令如下:

# 查看 demo1 内容
hxstrive@localhost:~$ cat demo1
Name    Age
Helen   40
Tom     35
Bill    38

# 查看 demo2 内容
hxstrive@localhost:~$ cat demo2
Salary  Name    Sex
12000   Helen   Male
8900    Tom     Female
10200   Bill    Male

# 连接两个文件,以 demo1 的第一列和 demo2 的第二列进行比较
hxstrive@localhost:~$ join -22 demo1 demo2
Name Age Salary Sex
Helen 40 12000 Male
Tom 35 8900 Female
Bill 38 10200 Male

更多关于命令详细参考手册,请使用 man 命令或者 --help 参数获取帮助信息

关于
本网站专注于 Java、数据库(MySQL、Oracle)、Linux、软件架构及大数据等多领域技术知识分享。涵盖丰富的原创与精选技术文章,助力技术传播与交流。无论是技术新手渴望入门,还是资深开发者寻求进阶,这里都能为您提供深度见解与实用经验,让复杂编码变得轻松易懂,携手共赴技术提升新高度。如有侵权,请来信告知:hxstrive@outlook.com
公众号