如何匹配两个文件并按列筛选匹配值的第三个文件?

时间:2014-06-28 02:02:08

标签: regex linux unix string-matching

感谢您对以下内容的意见:

我希望通过ID(第一列)匹配两个文件,并按列仅筛选匹配的第三个文件。

我有三个文件(见下文)。我想将file1$1file2中的ID进行匹配。在这两个文件之间相同的ID中,我想按列过滤file3File3列的排序与row1的{​​{1}}类似。唯一的区别是ID名称不表示为file1的列名。我只知道它有相同的顺序。

file3

file1

ID X Y ID1 X1 Y1 ID2 X2 Y2 ID3 X3 Y3

file2

ID1 ID3 (列的行数与file3的行类似 - 只是没有实际的ID)

file1

输出:

Z 1 2 3
W 1 2 3
V 1 2 3

我该怎么办?

1 个答案:

答案 0 :(得分:0)

不需要sed,awk,paste或join。

cut -d' ' -f`grep -nffile2 file1|cut -d: -f1|tr '\n' ,`1 file3