awk: encontra dados comuns entre dois arquivos

0

Arquivo 1 (Dados mestre):

12345|abc  
11223|xyz  
23234|pqr

Arquivo 2 (conjunto secundário de arquivo1):

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

Saída:

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

Explicação:
A primeira coluna (antes do sublinhado) de Arquivo2 deve corresponder à primeira coluna do Arquivo1 e a segunda coluna correspondente do Arquivo1 deve ser adicionada ao Arquivo2.

    
por Maddys 05.11.2018 / 07:56

1 resposta

2

Provavelmente, a abordagem mais simples é alterar o FS antes do segundo arquivo - então, por exemplo, você pode fazer a familiar pesquisa baseada em campo

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