Join 如何在awk中添加两个文件中的文本
我有两个tab delim文件,如下所示: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中的匹配项
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