join命令用于将两个文件中,指定栏位内容相同的行连接起来。 找出两个文件中,指定栏位内容相同的行,并加以合并,再输出到标准输出设备。
命令的参数如下:
-
-a1或者-a2表示先输出合并后相同部分内容,然后再输出文件 1 或者文件 2 中独有的内容(即,没法合并的内容)。假设有两个文件
file1.txt和file2.txt,内容分别如下:snake afraid dog lovelydog 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 的栏位。