join não retorna nada

2

Eu tenho dois arquivos com colunas separadas por tabulação e quero mesclá-los no arquivo a01

a=  b=  
c=  d=
e=  f=
g=  h=  i=
j=  k=  l=
m=  n=  0=

arquivo b01

1   2
3   4
5   6
7   8   9
10  11  12
13  14  15

saída desejada

a=1 b=2
c=3 d=4
e=5 f=6
g=7 h=8 i=9
j=10    k=11    l=12
m=13    n=14    0=15

mas quando eu executo o comando

join a01 b01

não retorna nada

Eu não sei o que estou fazendo errado
obrigado antecipadamente

    
por Emilio Galarraga 17.12.2017 / 01:03

2 respostas

4

Isso simplesmente não é como o comando join funciona - ele une linhas com base em um campo comum (correspondente) - que seus arquivos de entrada não possuem.

Você poderia fazer algo assim usando paste e awk :

paste a01 b01 | awk '{n=NF; for (i=n/2;i>0;i--) {$i = $i""$(i+n/2); NF--}} 1'
a=1 b=2
c=3 d=4
e=5 f=6
g=7 h=8 i=9
j=10 k=11 l=12
m=13 n=14 0=15
    
por 17.12.2017 / 01:30
0

Outra possível solução awk :

paste a01 b01 | awk '{ for (i=1; i<=NF/2; i++) printf $i $(i+NF/2) (i==int(NF/2) ? RS:FS) }'
    
por 17.12.2017 / 02:04

Tags