join
命令用于将两个文件中,指定栏位内容相同的行连接起来。 找出两个文件中,指定栏位内容相同的行,并加以合并,再输出到标准输出设备。
命令的参数如下:
-
-a1
或者-a2
表示先输出合并后相同部分内容,然后再输出文件 1 或者文件 2 中独有的内容(即,没法合并的内容)。假设有两个文件
file1.txt
和file2.txt
,内容分别如下:snake afraid dog lovely
dog bark panda fat
用法示例:
# 命令 sort file1.txt | join -a1 - <(sort file2.txt) # 输出第一行表示合并后的内容,第二行表示文件 1 独有的内容 : ' dog lovely bark snake afraid '
-
-e
对输出部分进行缺省值填充。
示例文件aa.txt
内容如下:apple 100 banana 200 cherry 300
文件
bb.txt
的内容如下:apple red banana grape
用法如下:
join -1 1 -2 1 -e 'N/A' -o 1.1,1.2,2.2 aa.txt bb.txt :'输出如下: apple 100 red banana 200 N/A '
-
-i
忽略大小写。 -
-o
按照指定的格式来显示结果。 -
-t
指定文件的分割符号。 -
-v
显示没有相同栏位的内容。join -v1 file1.txt file2.txt
上述命令将会输出文件 1 中没有匹配的行。
-
-1
或者-2
表示链接文件 1 或者文件 2 的栏位。