unix实用程序连接和输出字段

时间:2013-03-03 19:46:37

标签: unix join

我想输出已排序的file1中的所有字段,这些字段可以通过file1的field1和file2的field2连接。如果file1有三个字段,那么我可以执行以下操作:

  join -1 $field1 -2 $field2 -o 1.1,1.2,1.3 $file1 $file2

但是,如果file1有数百或数千个字段,我该怎么办?我当前的解决方法之一是Python,另一个是在两个已排序的文件上执行comm -12,这两个文件包含来自file1和file2的连接字段值,然后将file1与comm -12生成的文件连接起来。

这可以是file1 输入

 1 A
 2 B
 3 C

file2 输入

 3 D
 4 E
 5 F

如何获得输出(第2列中的共享值):

 C

不这样做:

 join -1 1 -2 1 -o 1.2 $file1 $file2

1 个答案:

答案 0 :(得分:0)

我遇到了这个answer,它使用了一种有用的语法。 n以下是列数。

join -1 1 -2 1 -o"$(echo 1.{2..n})" $file1 $file2