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 编写。
报告错误
GNU coreutils 在线帮助:[https://www.gnu.org/software/coreutils/] 请将任何翻译错误报告到:[https://translationproject.org/team/]
参阅
完整文档 [https://www.gnu.org/software/coreutils/join] 或在本地通过以下方式获取:info '(coreutils) join invocation'
由 Debian (9.7-3) 封装 版权所有 © 2025 自由软件基金会。 许可证 GPLv3+:GNU GPL 版本 3 或更高版本 [https://gnu.org/licenses/gpl.html]。 这是一个自由软件:您可以自由地更改和重新分发它。 在法律允许的范围内,不提供任何保证。