
Linux join命令
Linux join命令用于合并两个文件中指定列内容相同的行,并将这些行连接输出。
该命令会查找两个文件中指定列内容一致的行,进行合并后输出到标准输出。
语法
join [-i][-a][-e][-o][-t][-v][-1][-2][--help][--version][文件1][文件2]
参数说明:
- -a 显示原本输出内容的同时,也显示未匹配到相同列的行。
- -e 若在[文件1]和[文件2]中没有找到匹配的列,则用指定字符串填充输出。
- -i或--igore-case 忽略大小写进行比较。
- -o 按照指定格式输出结果。
- -t 设置列的分隔符。
- -v 和-a功能一样,但仅输出未匹配到的行。
- -1 指定连接[文件1]中的某一列。
- -2 指定连接[文件2]中的某一列。
- --help 显示帮助信息。
- --version 显示命令版本。
实例
合并两个文件的内容。
为更好理解join命令,先通过cat命令查看testfile_1和testfile_2的内容。
然后以默认方式比较这两个文件,将具有相同字段的行连接起来。输入如下命令:
join testfile_1 testfile_2
首先查看testfile_1、testfile_2 文件内容:
$ cat testfile_1 #testfile_1内容 Hello 95 #第一列为姓名,第二列为金额 Linux 85 test 30 cmd@hdd-desktop:~$ cat testfile_2 #testfile_2内容 Hello 2005 #第一列为姓名,第二列为年份 Linux 2009 test 2006
执行join命令合并两个文件,输出如下:
$ join testfile_1 testfile_2 #合并testfile_1与testfile_2 Hello 95 2005 Linux 85 2009 test 30 2006
注意:文件顺序会影响输出结果。若交换两个文件的位置,即执行以下命令:
join testfile_2 testfile_1
输出结果将变为:
$ join testfile_2 testfile_1 #交换文件顺序进行合并 Hello 2005 95 Linux 2009 85 test 2006 30










