加入2档基于在列字段(join 2 files based on fields in a colum

2019-10-20 06:19发布

我正尝试加入具有不同的行和列的长度,并具有其中包含未排序的方式类似的信息的列两个文件。

该文件是这样的:文件1

ab 23 33 4 55 6 7 8 9
ab 2 3 44 5 6 7 8
ab 3 4 22 7 8 9 9 00 9
ad 2 3 4 5 4 3
ac 456 47 8 9 0 0 hh kk
af 2 dd 5 6 zz 7 8

文件2

data ab 33 4 5
data ad 3 4 5 
data ac 3 4 5 6 7 8 

预期输出:

文件3

ab 23 33 4 55 6 7 8 9 data ab 33 4 5
ab 2 3 44 5 6 7 8 data ab 33 4 5
ab 3 4 22 7 8 9 9 00 9 data ab 33 4 5
ad 2 3 4 5 4 3 data ad 3 4 5 
ac 456 47 8 9 0 0 hh kk data ac 3 4 5 6 7 8

也在寻找其他职位如何为基于列的联合多个txt文件? 加入上的两个文件第一列 ,我想通了,最好的办法是使用

awk

我试过了:

awk -F "\t" 'NR==FNR{a[$2]=$0; next}$1 in a {print $0, a[$2]}' file2 file1 > file3

问题是,它只是打印file1和file2的不是。

我真的不明白的地方我的错误是。 任何建议?

非常感谢你!

Answer 1:

你没有张贴预期的输出,但你的AWK线有问题,我想这应该是:

awk -F "\t" 'NR==FNR{a[$2]=$0; next}$1 in a {print $0, a[$1]}' file2 file1

我在最后的修改{...}a[$2] -> a[$1]



文章来源: join 2 files based on fields in a columns
标签: linux join awk