这是可以在 OnWorks 免费托管服务提供商中使用我们的多个免费在线工作站之一运行的命令 joinposix,例如 Ubuntu Online、Fedora Online、Windows 在线模拟器或 MAC OS 在线模拟器
程序:
您的姓名
join — 关系数据库运算符
概要
加入 [-a 文件编号|-v 文件编号] [-e 绳子] [-o 名单] [-t 坦克]
[ - 1 部分] [ - 2 部分] file1 file2
商品描述
为 加入 实用程序应对文件执行相等连接 file1 和 file2. 加入的
文件应写入标准输出。
连接字段是每个文件中用来比较文件的字段。 这 加入 效用
应在输出中为每对行写一行 file1 和 file2 有
相同的连接字段。 默认情况下,输出行应包含连接字段,然后
其余字段来自 file1,然后剩下的字段来自 file2. 这种格式可以
通过使用更改 -o 选项(见下文)。 这 -a 选项可用于添加不匹配的
行到输出。 这 -v 选项可用于仅输出不匹配的行。
文件 file1 和 file2 应按以下排列顺序排列 分类 -b 在
它们应加入的字段,默认情况下是每行中的第一个。 全部选中
输出应以相同的整理顺序写入。
默认输入字段分隔符应为人物。 在这种情况下,多个
分隔符应计为一个字段分隔符,前导分隔符应被忽略。
默认输出字段分隔符应为.
可以使用以下命令更改字段分隔符和整理顺序 -t 选项(见
下文)。
如果同一个键在任一文件中出现多次,则该集合的所有组合
中的剩余字段 file1 和剩余的字段集 file2 按顺序输出
遇到的行。
如果输入文件不在适当的整理顺序中,则结果为
未指定。
配置
为 加入 实用程序应符合 POSIX.1-2008 的基本定义卷, 部分
12.2, 公用事业 句法 指南.
应支持以下选项:
-a 文件编号
为文件中每个不成对的行生成一行 文件编号,其中 文件编号
除了默认输出之外,还为 1 或 2。 如果两者 -a1和 -a2 被指定,
所有不成对的线都应该输出。
-e 绳子 替换所选列表中的空输出字段 -o 用字符串 绳子.
-o 名单 构造输出行以包含中指定的字段 名单, 每个元素
其中应具有以下两种形式之一:
1. 文件编号.字段,其中 文件编号 是一个文件号和 部分 是十进制
整数字段编号
2. 0(零),代表join字段
的要素 名单 要么- 分隔或- 分隔,如
在 POSIX.8-1 的基本定义卷的指南 2008 中指定, 部分
12.2, 公用事业 句法 指南. 指定的字段 名单 应写成
对于所有选定的输出线。 选择的字段 名单 没有出现在
输入应被视为空输出字段。 (见 -e 选项。)仅
应写入特别要求的字段。 申请应确保
这 名单 是单个命令行参数。
-t 坦克 使用字符 坦克 作为分隔符,用于输入和输出。 每次出场
of 坦克 在一行中应该是重要的。 指定此选项时,
整理顺序应与 分类 没有 -b 选项。
-v 文件编号
而不是默认输出,只为每个不可配对的行生成一行
文件编号,其中 文件编号 是 1 或 2。如果两者都 -v1和 -v2 被指定,所有
应输出不成对的线路。
- 1 部分 加入 部分文件 1 的第 XNUMX 个字段。字段是十进制整数,以
1.
- 2 部分 加入 部分文件 2 的第 XNUMX 个字段。字段是十进制整数,以
1.
操作数
应支持以下操作数:
file1, file2
要加入的文件的路径名。 如果其中任何一个 file1 or file2 操作数是
'-',应使用标准输入代替其位置。
标准输入
只有在以下情况下才使用标准输入 file1 or file2 操作数是 '-'. 查看输入
文件部分。
INPUT FILES
输入文件应为文本文件。
环境 变数
以下环境变量会影响执行 加入:
朗 为未设置或未设置的国际化变量提供默认值
空值。 (参见 POSIX.1-2008 的基本定义卷, 部分 8.2,
国际化 变量 为国际化优先
用于确定语言环境类别值的变量。)
LC_ALL 如果设置为非空字符串值,则覆盖所有其他字符串的值
国际化变量。
LC_COLLATE
确定整理序列的语言环境 加入 预计已被使用
当输入文件被排序时。
LC_CTYPE 确定用于解释文本数据字节序列的语言环境
作为字符(例如,单字节而不是多字节字符
参数和输入文件)。
LC_消息
确定应该用于影响格式和内容的语言环境
写入标准错误的诊断消息。
路径 确定用于处理的消息目录的位置 LC_消息.
异步 新闻
默认。
标准输出
为 加入 实用程序输出应是选定字符字段的串联。 当。。。的时候
-o 未指定选项,输出应为:
"%s%s%s\n", <加入 部分>,other file1 领域>,
<other file2 领域>
如果连接字段不是文件中的第一个字段,则other 文件 领域> 对于那个文件
应该:
<领域 前 加入 部分>,领域 以下 加入 部分>
当。。。的时候 -o 选项指定,输出格式应为:
"%s\n", <级联 of 领域>
其中字段的串联由 -o 选项,以上。
对于任一格式,每个字段(最后一个除外)都应写入其尾随
分隔符。 如果分隔符是默认值 ( 字符),单个
应写在每个字段之后(最后一个除外)。
斯特德
标准错误应仅用于诊断消息。
OUTPUT FILES
无。
EXTENDED 商品描述
无。
退出 状态
应返回以下退出值:
0 所有输入文件均已成功输出。
>0 发生错误。
后果 OF 错误
默认。
为 以下 部分 旨在 内容丰富。
申请须知 用法
由数字或形式组成的路径名 字符串.字符串 不应该是
直接在后面指定 -o 名单。
示例
为 -o 0 字段本质上选择连接字段的并集。 例如,给定文件
电话:
!姓名 电话 联系电话
唐 +1 123-456-7890
哈尔 +1 234-567-8901
矢志 +2 345-678-9012
和文件 传真:
!姓名 传真 联系电话
唐 +1 123-456-7899
基思 +1 456-789-0122
矢志 +2 345-678-9011
(其中大片的空白意味着每个都代表一个), 这
命令:
加入 -t ” ” -a 1 -a 2 -e '(未知)' -o 0,1.2,2.2 电话 传真
会产生:
!姓名 电话 联系电话 传真 联系电话
唐 +1 123-456-7890 +1 123-456-7899
哈尔 +1 234-567-8901 (未知)
基思 (未知) +1 456-789-0122
矢志 +2 345-678-9012 +2 345-678-9011
同一键的多个实例将产生组合结果。 下列:
确实:
a x
a y
a z
FB:
a p
将产生:
a x p
a y p
a z p
以及以下内容:
确实:
a b c
a d e
FB:
a w x
a y z
a o p
将产生:
a b c w x
a b c y z
a b c o p
a d e w x
a d e y z
a d e o p
基本原理
为 -e 选项仅在与 -o 因为,除非特定字段是
识别使用 -o, 加入 不知道哪些字段可能为空。 的例外
这是连接字段,但用 -e 字符串不是
如果更改,历史惯例和某些脚本可能会中断。
中的 0 字段 -o 列表是从第十版中采用的 加入 为了满足
国际反对意见认为 加入 在基础文档中不支持``完整
关系数据库文献中描述的联接”或“外联接”。 虽然已经
可以在输出中包含一个连接字段(默认情况下,或使用字段编号 -o),
无法为由 -a。 该 -o 0 字段
本质上选择连接字段的并集。
这种外连接是不可能的 加入 基础文档中的命令。 这
-o 选择 0 字段是因为它是应用程序的向上兼容更改。 一个
考虑了替代方案:让连接字段代表字段中的联合
文件(对于匹配的行,它们是相同的,对于不匹配的行,其中一个或两个都为空
行)。 这没有被采用,因为它会破坏一些历史应用。
指定能力 file2 as - 不是历史实践; 它是为
完整性。
为 -v 选项不是历史惯例,但被认为是必要的,因为它
允许写 仅由 那些在连接字段上不匹配的行,而不是
以及 -a 选项,打印匹配和不匹配的两行。 这个额外的
设施与 -v 选项 grep的.
遇到过一些历史实现,其中一个空行
输入文件被认为是文件的结尾; 本卷中的描述
POSIX.1-2008 没有将此列为允许的情况。
本标准的早期版本允许 -j, -j1, -j2 选项,以及一种形式 -o
选项允许 名单 option-argument 为多个参数。 这些表格没有
POSIX.1-2008 指定的更长,但可能存在于某些实现中。
未来 如何前往
无。
使用 onworks.net 服务在线使用 joinposix