Cómo multiplicar números ubicados en dos archivos diferentes

Cómo multiplicar números ubicados en dos archivos diferentes

Tengo dos archivos...

Primer archivo (entrada 1):

1: 6.1703
44 14.7262
46 18.3255

2: 6.1932
44 52.9379
46 4.30653

3: 6.5664
45 2.82839
46 3.1275

4: 8.0923
44 14.1076

Segundo archivo (entrada 2):

43          5e-05           4e-05
44          1e-05           2e-05
45          0.00083         1.00083
46          4e-05           7e-05
47          0.00021         6.00021

... y quiero multiplicar los elementos del primer archivo con los dos elementos del segundo archivo, tomando en consideración el número ubicado en la primera columna (ambos archivos). La salida debería verse así:

1: 6.1703
44 14.7262*1e-05   14.7262*2e-05    
46 18.3255*4e-05   18.3255*7e-05

2: 6.1932
44 52.9379*1e-05   52.9379*2e-05
46 4.30653*4e-05   4.30653*7e-05

3: 6.5664
45 2.82839*0.00083 2.82839*1.00083
46 3.1275*4e-05    3.1275*7e-05

4: 8.0923
44 14.1076**1e-05  14.1076**2e-05

Respuesta1

Extraer las columnas 2 y 3 de file2las matrices ay bcodificarlas mediante la columna 1. Recorrer e imprimir file1usando miembros de la matriz desde ay bcomo multiplicadores y los valores de la columna 2 como multiplicandos.

awk 'NR == FNR{a[$1]=$2; b[$1]=$3; next}
     /:/ || !NF{print; next}
     {print $1, $2*a[$1], $2*b[$1]}' file2 file1

1: 6.1703
44 0.000147262 0.000294524
46 0.00073302 0.00128279

2: 6.1932
44 0.000529379 0.00105876
46 0.000172261 0.000301457

3: 6.5664
45 0.00234756 2.83074
46 0.0001251 0.000218925

4: 8.0923
44 0.000141076 0.000282152

información relacionada