2016-12-07 4 views
-1

나는 두 개의 탭 DELIM 파일이 두 파일에서 텍스트를 추가하는 방법 :아래 그림과 같이 AWK

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.txt 
1  a,b,c 
2  b,c,e 
3  e,d,f,a 

FileB.txt 
a xxx 
b xyx 
c zxxy 

나는 아래의 방법으로 출력을 필요 FileA의 $ 2에있는 $ 1은 FileB의 $ 1에서 일치 항목을 검색하고 FileB에서 $ 2에있는 값과 함께 출력에 새 열을 추가하는 데 사용됩니다. 일치하지 않으면 원래 값을 인쇄해야합니다. 이 작업을 수행하는 방법에 대한 도움이 필요하십니까?

답변

1

awk the rescue!

$ 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 
관련 문제