我有两个文件,名为 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
您可以将其重定向到另一个文件,然后处理整个文件而不进行过滤。