如何在awk中从两个文件长度不同的两个输入文件中获取匹配的记录?

如何在awk中从两个文件长度不同的两个输入文件中获取匹配的记录?

输入文件

file 1==HQ|SCORE
file 2==HQ|WRST_PMT_STAT|total_exposure

输出文件

HQ|WRST_PMT_STAT|total_exposure|SCORE

这两个文件的共同点是HQ

awk -F'|' 'NR==FNR{c[$1]++;next};c[$1]' File1 file2 > output 

我只得到 file2 输入,但我没有得到SCORE。两个文件都包含 60k 记录。

答案1

尝试使用以下命令

awk -F "|" 'NR==FNR {b[FNR]=$2;a[$1];next}($1 in a){print $0"|"b[FNR]}' file1 file2

输出

HQ|WRST_PMT_STAT|total_exposure|SCORE

相关内容