例如,我有两个文件。文件 1 包含:
12
13
14
15
文件2包含:
13,abc,xyz
14,def,ghi
15,klm,opq
file3 中的预期输出:
13,abc,xyz
14,def,ghi
15,klm,opq
我在一台 Linux 机器上。命令是什么?
答案1
严格来说,我们对共同点不感兴趣线(给定数据中没有公共线),但在基于第一列的数据的交集中。
使用join
:
$ join -t, File1 File2
13,abc,xyz
14,def,ghi
15,klm,opq
该join
公用事业公司做了一个有效的关系(内部)JOIN两个文件之间的操作,每个文件都有自己的字段(默认情况下是第一个字段)。我用它-t ,
告诉它逗号是文件中的字段分隔符(否则它使用任何空格)。默认情况下,该命令将根据两个文件的第一个字段创建交集。
请注意,这两个文件都需要在连接字段(第一列)上进行排序,它们似乎出现在问题中。如果它们没有排序,您可以使用以下命令即时对它们进行排序
join -t, <( sort File1 ) <( sort File2 )
如果您的 shell 支持进程替换。