awk:查找两个文件之间的共同数据

awk:查找两个文件之间的共同数据

文件1(主数据):

12345|abc  
11223|xyz  
23234|pqr

文件 2(文件 1 的子集):

12345_ASDD|PASD|AWOP  
11223_PLDD|EVAAA ASDAS|ASDD  
23234_MJKJLO|OKEI JSN|OPIE  

输出:

12345_ASDD|PASD|AWOP|abc  
11223_PLDD|EVAAA ASDAS|ASDD|xyz  
23234_MJKJLO|OKEI JSN|OPIE|pqr

解释:
第一列(下划线之前)文件2应与 File1 的第一列匹配,并且 File1 的相应第二列应添加到 File2。

答案1

也许最简单的方法是在第二个文件之前更改 FS - 例如,您可以进行熟悉的基于字段的查找

awk 'BEGIN{OFS=FS="|"} NR==FNR {a[$1]=$2; next} {print $0,a[$1]}' File1 FS="_" File2

相关内容