使用unix join -o不打印公共字段

时间:2012-08-09 23:23:05

标签: unix join

我正在使用 join -1 2 -2 2 file1.txt file2.txt > file3.txt根据第二列加入我的两个文本文件,并将它们写入file3.txt,这非常有效。但是,我不希望file3.txt包含公共字段。谷歌搜索和加入man页面表明-o格式化操作符可以帮助实现这一目标,但我该怎么做呢?

1 个答案:

答案 0 :(得分:1)

假设每个文件只有两列,并且您想要连接第二列但只显示输出中每个文件的第一列,请使用

join -1 2 -2 2 -o 1.1,2.1 file1.txt file2.txt > file3.txt

请记住,在加入之前,您的两个文件应在第二列上进行排序。

示例运行:

$ cat file1.txt
2 1
3 2
7 2
8 4
2 6
$ cat file2.txt 
3 1
5 4
9 9
$ join -1 2 -2 2 -o 1.1,2.1 file1.txt file2.txt
2 3
8 5