file1과 file2라는 두 개의 파일이 있습니다. 첫 번째 파일의 NR을 file2의 첫 번째 필드(예: $1)와 비교하고 싶습니다. 다음과 같습니다: if(file1.NR==file2.$1){그런 다음 계산을 수행합니다}. 누구든지 나를 도와주세요.
파일 1
t 0.00031
r 0.000558677
r 0.000558884
r 0.000559019
t 0.000649164
r 0.000897651
r 0.000897716
t 0.000987716
............
............
등. File1의 총 행 수(NR)는 579입니다.
파일 2
9 0.00031
17 0.000649164
27 0.000987716
37 0.00129372
47 0.00163994
6 0.00194716
66 0.00227338
.............
.............
등. File2의 총 행 수(즉, NR)는 82입니다.
답변1
기본적으로 두 번째 파일을 인덱스로 사용하려고 합니다. 먼저 파일을 필터링하여 원하는 줄만 유지한 다음 결과를 한 줄씩 처리할 수 있습니다.
처리할 awk 줄 번호 배열을 만드는 것이 더 쉬울 수도 있습니다.
awk 'NR==FNR { array[FNR] = $1 }
NR!=FNR { file1_lines[FNR] = $0 }
END { for(linenum in array) { print file1_lines[array[linenum]] } }' file2 file1
다른 파일로 리디렉션하여 필터링 없이 전체 파일을 처리할 수 있습니다.