我有两个制表符分隔文件,如下所示:
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。如果不匹配则应打印原始值。有关如何执行此操作的任何帮助吗?
答案 0 :(得分:1)
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