2 つのファイルがあり、file1 には約 1M 行、file2 には約 1k 行あります。
file1 にはいくつかのフィールド (tower_id、user_id、signal_strength) が含まれており、次のようになります。
"0001","00abcde","0.65"
"0002","00abcde","0.35"
"0005","00bcdef","1.0"
"0001","00cdefg","0.1"
"0003","00cdefg","0.4"
"0008","00cdefg","0.3"
"0009","00cdefg","0.2"
file2 には他のフィールド (tower_id、x_position、y_position) が含まれており、次のようになります。
"0001","34","22"
"0002","78","56"
"0003","12","32"
"0004","79","45"
"0005","36","37"
"0006","87","99"
"0007","27","93"
"0008","55","04"
"0009","02","03"
各 user_id の signal_strength の合計は 1 です。各タワーの信号強度に基づいて、各ユーザーのタワーの数を数えてユーザーの位置を計算し、strength_signal と tower_position の値の乗算を次のように計算する必要があります。これ:
"00abcde" --> 0.65*34+0.35*78, 0.65*22+0.35*56
"00bcdef" --> 1.0*36, 1.0*37
"00cdefg" --> 0.1*34+0.4*12+0.3*55+0.2*02, 0.1*22+0.4*32+0.3*04+0.2*03
したがって、出力ファイルは次のようになります (user_id、computed_x_position、computed_y_position):
00abcde,49.4,33.9
00bcdef,36,37
00cdefg,25.1,16.8
私のアイデアは、awkを使用し、どういうわけか「見た」機能とfile1とfile2を入力ファイルとして使用することでした(のようにawk 'NR==FNR {some commands} {print some values}' file1 file2 > outputfile
)が、その方法がわかりません。誰でも私を助けることができますか?