
file1とfile2という2つのファイルがあります。最初のファイルの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
デフォルトでは、2番目のファイルをインデックスとして使用しようとしています。まず、ファイルをフィルタリングして必要な行だけを保持し、結果を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
別のファイルにリダイレクトして、フィルタリングなしでファイル全体を処理できます。