命令行大全

join

喵喵 发表于 2020-07-11 03:54浏览次数:

在类似Unix的操作系统上,JOIN命令连接两个文件的行,它们共享一个公共的数据字段。

本文档介绍了JOIN的GNU/Linux版本。

This document covers the GNU/Linux version of join.

查看英文版

目录:

1 join 运行系统环境

2 join 语法

3 join 建议

4 join 示例

join 运行系统环境

Linux

join 语法

join [OPTION]... FILE1 FILE2
对于具有相同连接字段的每一对输入行,将一行写入标准输出。默认联接字段是第一个,由空格分隔。当FILE 1或File 2(不是两者兼而有之)为-时,读取标准输入。
join [OPTION]... FILE1 FILE2
For each pair of input lines with identical join fields, write a line to standard output. The default join field is the first, delimited by whitespace. When FILE1 or FILE2 (not both) is -, read standard input.

查看英文版

查看中文版

join 建议

-aFILENUM 此外,从文件FILENUM中打印不可修复的行,其中FILENUM为1或2,对应于FILE 1或File 2。
-e EMPTY 将缺少的输入字段替换为空。
-i--ignore-case 在比较字段时忽略不同的情况。
-j FIELD 相当于“-1字段-2字段”。
-o FORMAT 在构造输出线时遵守格式。
-t CHAR 使用CHAR作为输入和输出字段分隔符。
-v FILENUM 类似-a FILENUM,但是抑制连接的输出线。
-1 FIELD 加入文件1的这个字段。
-2 FIELD 加入文件2的这个字段。
--check-order 检查输入是否正确排序,即使所有输入行都是可修复的。
--nocheck-order 不要检查输入是否正确排序。
--header 将每个文件中的第一行视为字段标题,打印它们而不尝试对它们修复。
--help 显示帮助信息并退出。
--version 显示版本信息并退出。
除非给出-tchar,否则字段用前导空格分隔;否则,字段由CHAR分隔。任何字段都是从1算出的字段号。 如果格式是关键字AUTO,那么每个文件的第一行确定每一行输出的字段数。 必须在连接字段上对FILE 1和File 2进行排序。排序命令可以完成这一任务。如果输入没有排序,并且一些行无法连接,则将给出一条警告消息。
-aFILENUM Also, print unpairable lines from fileFILENUM, whereFILENUM is or 2, corresponding to FILE 1 or FILE 2.
-e EMPTY Replace missing input fields with EMPTY.
-i--ignore-case Ignore differences in case when comparing fields.
-j FIELD Equivalent to "-1 FIELD -2 FIELD".
-o FORMAT Obey FORMAT while constructing output line.
-t CHAR Use CHAR as input and output field separator.
-v FILENUM Like -a FILENUM, but suppress joined output lines.
-1 FIELD Join on this FIELD of file 1.
-2 FIELD Join on this FIELD of file 2.
--check-order Check that the input is correctly sorted, even if all input lines are pairable.
--nocheck-order Do not check that the input is correctly sorted.
--header Treat the first line in each file as field headers, print them without trying to pair them.
--help Display a help message and exit.
--version Display version information and exit.
Unless -t CHAR is given, fields are separated by leading blank spaces; otherwise, fields are separated by CHAR. Any FIELD is a field number counted from 1.
If FORMAT is the keyword auto, then the first line of each file determines the number of fields output for each line.
FILE1 and FILE2 must be sorted on the join fields. The sort command can accomplish this. If the input is not sorted and some lines cannot be joined, a warning message will be given.

查看英文版

查看中文版

join 示例

如果我们有一个文件myfile1.txt,其内容是:
1 India
2 US
3 Ireland
4 UK
5 Canada...
...和另一个文件myfile2.txt,其内容如下:
1 NewDelhi
2 Washington
3 Dublin
4 London
5 Toronto
公共字段是以相同数目开头的字段。我们可以使用以下命令加入内容:
join myfile1.txt myfile2.txt
...它将下列输出输出到标准输出:
1 India NewDelhi
2 US Washington
3 Ireland Dublin
4 UK London
5 Canada Toronto
如果我们想要创建一个包含已连接内容的新文件,可以使用以下命令:
join myfile1.txt myfile2.txt > myjoinedfile.txt
...它将输出定向到一个名为myjoinedfile.txt的新文件中,该文件包含与上面示例相同的输出。
If we have a file, myfile1.txt, whose contents are:
1 India
2 US
3 Ireland
4 UK
5 Canada...
and another file, myfile2.txt, whose contents are:
1 NewDelhi
2 Washington
3 Dublin
4 London
5 Toronto
The common fields are the fields which begin with the same number. We can join the contents using the following command:
join myfile1.txt myfile2.txt
...which outputs the following to standard output:
1 India NewDelhi
2 US Washington
3 Ireland Dublin
4 UK London
5 Canada Toronto
If we wanted to create a new file with the joined contents, we could use the following command:
join myfile1.txt myfile2.txt > myjoinedfile.txt
...which directs the output into a new file called myjoinedfile.txt, containing the same output as the example above.

查看英文版

查看中文版