我有两个文件,我想将第 2 列和第 3file1
列与file3
. 如果找到了模式,我想输出整行,以及最后的第file2
1 列file1
:
我有以下两种文件类型:(file2
有很多列(tab
分隔)但是,第 2 列和第 3 列可以匹配 2 和 3 中的file1
。)
文件 1
name1 1 12343442
name2 2 32434242
name3 3 982793749
文件2
a 1 12343442 text1 text2 text3 value0 value2
a 1 12343442 text1 text2 text3 value2 value3
a 1 12348888 text1 text2 text3 value0 value2
b 3 982793749 text1 text4 text3 value1 value11
b 2 982793749 text1 text4 text3 value1 value11
期望的输出
a 1 12343442 text1 text2 text3 value0 value2 name1
a 1 12343442 text1 text2 text3 value2 value3 name1
b 3 982793749 text1 text4 text3 value1 value11 name3
我尝试过使用awk
. 就像是:
awk 'BEGIN { FS = "\t" } NR==FNR { a[$1]=$2 FS $3; next} ('$2 FS $3' in a) {print $0, a[$1]}' file1 file2
但它不起作用。即使我只是尝试匹配第三列,它也不起作用。这些文件很大> 500mb,所以我只想读一次。有任何想法吗?谢谢!