Mesclando duas tabelas incluindo múltiplas ocorrências de identificadores de coluna

2

Gostaria de mesclar duas tabelas:

Arquivo 1:

1 today
2 tomorrow
3 red

Arquivo 2:

1 a lot
1 sometimes
2 at work
2 at home
2 sometimes
3 new

Saída desejada (arquivo 3):

1 today a lot
1 today sometimes
2 tomorrow at work
2 tomorrow at home
2 tomorrow sometimes
3 red new

Eu fiz o seguinte:

awk -F '[\t]' -v OFS='\t' '{i=$1;$1=x} NR==FNR{A[i]=$0;next} A[i]{print i,$0A[i]}' file2 file1 > file3

No entanto, só me dá:

1 today sometimes
2 tomorrow sometimes
3 red new

    
por BSP 15.09.2014 / 19:13

2 respostas

7

Você precisa especificamente de uma solução awk ? join file1 file2 > file3 fará exatamente o que você quer.

    
por 15.09.2014 / 19:38
6

Tente:

$ awk 'FNR==NR{a[$1]=$2;next};{$1 = $1"\t"a[$1]}1' OFS='\t' file1 file2
1   today   a lot
1   today   sometimes
2   tomorrow    at  work
2   tomorrow    at  home
2   tomorrow    sometimes
3   red new
    
por 15.09.2014 / 19:18