我有2个制表符分隔文件(已排序),我正在尝试内连接:
文件1:
01130164254 01/29/2008
01130165543 05/16/2011
01130168864 07/14/2009
01635163349 11/24/2009
文件2:
0.11 73379268872
0.64 67119603398
0.65 67261704102
16.11 01635163349
第一个文件的第二列和第一个文件的第一列是我要加入文件的公共列。当我尝试命令时:
join -t" " -1 1 -2 1 File 1 File 2
我没有输出。但是当我尝试这个命令时:
join -t" " -a 2 -a 1 -e 'NULL' -o '0,1.1,1.2,2.1,2.2' File1 File2
我得到了一个结果,遗憾的是这意味着UNIX没有找到要加入的文件的公共密钥,这是令人惊讶的,因为文件之间有共同的值。这就是结果样本的样子
01635158332 09/09/2016 01635158332 09/09/2016 NULL NULL NULL
01635163349 11/24/2009 01635163349 11/24/2009 NULL NULL NULL
16.11 01635163339 NULL NULL 16.11 01635163339 NULL
16.11 01635163349 NULL NULL 16.11 01635163349 NULL
如上所示,01635163349是具有日期的文件1和具有成本的文件2之间的公共密钥。理想情况下,结果应该是
01635163349 11/24/2009 16.11
此外,文件2是完整转储文件,文件1是每日增量文件。
还有其他方法可以在这两个文件之间创建内连接吗?请帮助!!
答案 0 :(得分:0)
join
的输入需要在您加入的字段上 。
sort -t $'\t' "File 2" |
join -t $'\t' -1 1 -2 1 "File 1" -