Como substituir campos de file_A por campos de file_B

1

Eu tenho um arquivo como:

{&structure_name.field, sizeof(structure_name.field),
 &structure_name.field, sizeof(structure_name.field), TODO },
{&structure_name.field, sizeof(structure_name.field),
 &structure_name.field, sizeof(structure_name.field), TODO },
{&structure_name.field, sizeof(structure_name.field),
 &structure_name.field, sizeof(structure_name.field), TODO },   

e outro arquivo que possui 3 registros com dois campos em cada linha:

123 fun1   
456 sum_fun
789 multi_fun

Eu quero escrever um comando rápido que me dará algo como abaixo:

{&structure_name.123, sizeof(structure_name.123),
 &structure_name.123, sizeof(structure_name.123), fun1 },
{&structure_name.456, sizeof(structure_name.456),
 &structure_name.456, sizeof(structure_name.456), sum_fun },
{&structure_name.789, sizeof(structure_name.789),
 &structure_name.789, sizeof(structure_name.789), multi_fun },   

Por favor, você pode aconselhar como conseguir isso?

    
por Forever Learner 17.02.2017 / 10:47

1 resposta

1

Você pode tentar algo assim:

awk 'NR==FNR { a[2*NR] = $1; a[2*NR-1] = $1; b[2*NR] = $2; b[2*NR-1] = $2; next; }
     { gsub(/field/, a[FNR]); gsub(/TODO/, b[FNR]); print; }' patterns input
    
por 17.02.2017 / 11:13

Tags