如何在Linux中根据公共字段连接两个文件?


要根据公共字段连接两个文件,我们在Linux系统中使用join命令。join命令用于在Linux系统中根据公共字段连接两个文件的行。如果我们有两个文件,并且想要连接文件行,则无需合并两个文件。我们可以使用join命令在不合并文件的情况下连接行。默认情况下,连接字段是第一个字段,由空格分隔。

语法

join命令的通用语法如下:

join [OPTION]... FILE1 FILE2

注意 – 如果未给出FILE1或FILE2或两者均未给出,则join命令从标准输入读取。

fmt命令中可用选项的简要说明。

序号选项和说明
1-a, FILENUM
还打印来自文件FILENUM的不可配对的行,其中FILENUM为1或2,分别对应FILE1或FILE2
2-e EMPTY
用EMPTY替换缺失的输入字段
3-i, --ignore-case
比较字段时忽略大小写差异
4-j FIELD
等效于‘-1 FIELD -2 FIELD’
5-o FORMAT
构造输出行时遵守FORMAT
6-t CHAR
使用CHAR作为输入和输出字段分隔符
7-v FILENUM
类似于-a FILENUM,但抑制连接的输出行
8-1 FIELD
连接文件1的此FIELD
9-2 FIELD
连接文件2的此FIELD
10--header
将每个文件中的第一行视为字段标题,打印它们而不尝试将它们配对
11-z, --zero-terminated
行分隔符为NULL,而不是换行符
12--help
显示帮助信息,然后退出。
13--version
它提供有关版本的信息,然后退出。

要连接两个文件的行并打印到标准输出,我们使用没有任何其他选项的join命令,如下所示。

首先,我们将使用Linux系统中的cat命令创建两个已排序的文件。

$ cat > text1.txt
1 SID
2 SAYANI
3 GAURAV
4 VIKASH
$ cat >text2.txt
1 23
2 19
3 22
4 21

然后,我们将使用join命令连接Linux系统中的行,如下所示。

$ join text1.txt text2.txt
1 SID 23
2 SAYANI 19
3 GAURAV 224 VIKASH 21

注意 - 要合并两个文件,这两个文件中必须有一些公共字段。

我们可以创建一个新文件,其中连接公共字段,如下所示。

$ join text1.txt text2.txt >jointext.txt

要检查有关join命令的更多信息,我们可以在Linux操作系统中使用--help选项与join命令一起使用,如下所示。

$ join --help

要检查join命令的版本信息,我们可以在Linux操作系统中使用--version选项与join命令一起使用,如下所示。

$ join --version

更新于:2021年7月1日

952 次浏览

启动你的职业生涯

通过完成课程获得认证

开始学习
广告