서로 다른 두 파일에 있는 숫자를 곱하는 방법

서로 다른 두 파일에 있는 숫자를 곱하는 방법

파일이 2개 있는데..

첫 번째 파일(입력 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

두 번째 파일(입력 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

... 그리고 첫 번째 열(두 파일 모두)에 있는 숫자를 고려하여 첫 번째 파일의 요소를 두 번째 파일의 두 요소와 곱하고 싶습니다. 출력은 다음과 같아야 합니다.

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

답변1

열 2와 3을 file2배열 로 후루룩 a마시고 열 1로 입력합니다. 배열 멤버를 승수로 사용하고 열 2 값을 피승수로 사용 하여 b반복하고 인쇄합니다.file1ab

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

관련 정보