如何在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
广告