JOIN(1)

名称
join - 根据公共字段连接两个文件的行

概述
join [选项]... 文件1 文件2

描述

对具有相同的合并域的每一对输入行，在标准输出写出一行信息。默认的合并域是第一列的内容，使用空白字符分隔。

当 文件1 或 文件2 为 - 时（不能两者同时为 -），从标准输入读取。

-a 文件编号
    同时打印文件编号所对应文件的无法配对的行，其中文件编号可以是 1 或者 2，分别对应于 文件1 或 文件2

-e 字符串
    用给定字符串替换缺失的（空）输入字段；即，由 '-12jo' 选项指定的缺失字段

-i, --ignore-case
    比较各个域时忽略大小写差异

-j 字段
    等效于 "-1 字段 -2 字段"

-o 格式
    按照指定格式构造输出行

-t 字符
    使用指定字符作为输入和输出字段的分隔符

-v 文件编号
    类似 -a 文件编号，但不输出已连接的行

-1 字段
    根据 文件1 的该字段进行连接

-2 字段
    根据 文件2 的该字段进行连接

--check-order
    检查输入是否正确排序，即便所有输出行均可配对

--nocheck-order
    不要检查输入是否正确排序

--header
    将每个文件的第一行视为字段标题，将其打印出来且不尝试进行配对

-z, --zero-terminated
    以 NUL 作为行的分隔符，而非换行符

--help
    显示此帮助信息并退出

--version
    显示版本信息并退出

除非给出了 -t 字符，前导空白字符将被用于分隔字段并被忽略；否则给定的字符将被用来分隔字段。任何给定的字段应为从 1 开始计数的字段编号。给定的格式应为一个或多个以逗号或空白字符分隔的规范字串，其中每个字串格式为“文件编号.字段”或者“0”。默认的格式将输出被连接的字段、来自 文件1 的剩余字段以及来自 文件2 的剩余字段；它们都由给定分隔用字符所分隔。如果给定格式字串为“auto”关键字，那么每个文件的第一行决定每行输出的字段数量。

重要提示：文件1 和 文件2 必须按照连接字段排序。例如，如果 'join' 没有选项，则使用 "sort -k 1b,1"；或者如果 'sort' 没有选项则使用 "join -t ''"。比较遵循“LC_COLLATE”指定的规则。如果输入未排序且某些行无法连接，程序将会给出警告信息。

作者
由 Mike Haertel 编写。

报告错误
请报告问题至：bug-coreutils@gnu.org
GNU coreutils 主页： <https://www.gnu.org/software/coreutils/>
使用 GNU 软件的通用帮助： <https://www.gnu.org/gethelp/>
请向 <https://translationproject.org/team/zh_CN.html> 报告翻译错误

版权
版权所有 © 2026 自由软件基金会。许可证 GPLv3+: GNU GPL 第 3 版或更新版本 <https://gnu.org/licenses/gpl.html>。
本软件是自由软件：您可以自由修改和重新发布它。在法律允许的范围内，不提供任何保证。

参见
comm(1), uniq(1)

完整文档请见： <https://www.gnu.org/software/coreutils/join>
或者在本地使用： info '(coreutils) join invocation'

跋
本页面中文版由中文 man 手册页计划提供。
中文 man 手册页计划：https://github.com/man-pages-zh/manpages-zh