한 파일의 열과 두 파일의 열과 행 수가 동일한 다른 파일의 열을 곱하는 데 도움이 필요합니다. 스크립트에서 첫 번째 파일의 첫 번째 열에 두 번째 파일의 첫 번째 열, 첫 번째 파일의 두 번째 열, 두 번째 파일의 두 번째 열 등을 곱하도록 하고 싶습니다.
내 샘플 데이터와 원하는 출력은 다음과 같습니다.
파일 1
2 3 4 4 . . .
5 6 7 8 . . .
. . . . . . .
파일 2
3 4 8 10 . . .
5 10 5 9 . . .
. . . . . . .
필요한 출력 파일은 다음과 같습니다.
파일 1. 파일 2
6 12 32 40 . . .
25 60 35 72 . . .
답변1
이것은 트릭을 수행해야합니다. 두 파일의 행에 동일한 수의 열이 있다고 가정합니다.
awk '
{
getline file2_line <"file2";
split(file2_line, fields_from_file2);
cur = 1;
while ( cur <= NF )
{
printf("%s ", $cur * fields_from_file2[cur]);
cur++;
}
printf("\n");
}
' file1
답변2
또는:
paste file1 file2 | awk '{h=NF/2;for (i=1;i<=h;i++) $i=$i*$(i+h);NF=h};1'
(두 파일의 열과 행 수가 동일하다고 가정)