Join 如何在awk中添加两个文件中的文本

Join 如何在awk中添加两个文件中的文本,join,awk,Join,Awk,我有两个tab delim文件,如下所示: FileA.txt 1 a,b,c 2 b,c,e 3 e,d,f,a FileB.txt a xxx b xyx c zxxy 我需要以下方式的输出: Output: 1 a,b,c xxx,xyx.zxxy 2 b,c,e xyx,zxxy,e 3 e,d,f,a e,d,f,xxx FileA的$2中以逗号分隔的值将用作键,以搜索FileB的$1中的匹配项

我有两个tab delim文件,如下所示:

FileA.txt   
1     a,b,c
2     b,c,e
3     e,d,f,a

FileB.txt
a    xxx
b    xyx
c    zxxy
我需要以下方式的输出:

Output:
1     a,b,c    xxx,xyx.zxxy
2     b,c,e    xyx,zxxy,e
3     e,d,f,a  e,d,f,xxx

FileA的$2中以逗号分隔的值将用作键,以搜索FileB的$1中的匹配项,并在输出中添加一个新列,其值在FileB的$2中。如果不匹配,则应打印原始值。有关于如何执行此操作的任何帮助吗?

awk
请救命

$ awk 'NR==FNR {a[$1]=$2; next} 
               {NF++; s=""; n=split($2,t,","); 
                for(i=1;i<=n;i++) {k=t[i]; 
                                   $NF=$NF s ((k in a)?a[k]:k);           
                                   s=","}}1' fileB fileA | column -t

1  a,b,c    xxx,xyx,zxxy
2  b,c,e    xyx,zxxy,e
3  e,d,f,a  e,d,f,xxx
$awk'NR==FNR{a[$1]=$2;next}
{NF++;s=”“;n=split($2,t,“,”);
对于(i=1;i