いくつかの大きなデータ ファイル (最大 100MB ~ 1GB のテキスト) と、関心のあるデータ ポイントにインデックスを付ける何万ものタイムスタンプの並べ替えられたリストがあります。タイムスタンプ ファイルは次のようになります。
12345
15467
67256
182387
199364
...
データファイルは次のようになります。
Line of text
12345 0.234 0.123 2.321
More text
Some unimportant data
14509 0.987 0.543 3.600
More text
15467 0.678 0.345 4.431
2 番目のファイルのデータはすべて、タイムスタンプ順に並んでいます。最初のタイムスタンプを使用して2番目のファイルをgrepし、タイムスタンプと4番目のデータ項目を出力ファイルに出力したいと思います。私はこれを使用しています:
grep -wf time.stamps data.file | awk '{print $1 "\t" $4 }' >> output.file
これは、各データ ファイルを完了するのに約 1 日かかります。問題は、このコマンドが time.stamps のすべての行についてデータ ファイル全体を検索することですが、最後のデータ ポイントから検索する必要があるだけです。このプロセスをスピードアップする方法はありますか?