在Linux中比较两个文件中的一列,但同时在第二个文件中打印其他列

时间:2018-07-19 10:49:34

标签: linux diff comm

File1.txt

电话号码

0777
0788
0789
0766
0756

File2.txt

电话号码名称地址

0777 Joe street1
0788卡伦街2
0789 Dave street3
0783肖恩街4
0781米克街5

需要输出

电话号码名称地址

0777 Joe street1
0788卡伦街2
0789戴夫street3

尝试使用comm file1.txt file2.txt> comm2.txt

但是由于文件2.txt中的多余列,输出显示没有匹配的行。

还查看了一些awk脚本,但没有获得期望的输出的喜悦(每个文件中的通用行包括file2.txt额外的列)。

1 个答案:

答案 0 :(得分:1)

join -1 1 -2 1 <(sort File1.txt) <(sort File2.txt)

join将联接指定字段上的数据,但要求对输入进行排序。

因此,将排序结果传递给join。

由于排序过程,标题可能是一个问题,但是您可以将其删除,然后再放回原处。