File 1: 1356775 lines
File 2: 9516 lines
ファイル 2 には、ファイル 1 で一致した場合にそのファイルから削除する必要がある番号の行が含まれています。例:
ファイル 1
34234323432 some useless stuff
23423432342 more useless stuff
98989898329 foo bar blah
65367389473 one two three
ファイル 2
234234323
653673894
新しいファイル
34234323432 some useless stuff
98989898329 foo bar blah
今の私のアプローチは、
- file2 の内容全体を配列に読み込みます
- File1 の最初の行を取得し、最初の 8 つの数字を抽出します
- ステップ 1 の配列全体をループして、ステップ 1 の 8 つの数値が一致するかどうかを確認します
- 番号が一致しない場合は、ステップ 1 の行を新しいファイルに書き込みます
- それらが一致する場合は、ループから抜け出し、その行を新しいファイルに書き込まないでください
- ステップ 2 から読み取る行がなくなるまで続行します。
ただし、ファイルが非常に大きいため、file1 の各行に対して配列全体 (9516 要素) をループしているため、これを行うには膨大な時間がかかります。ファイルのレコードをDBテーブルに入れずに、このタイプのファイル操作を行う簡単な方法はありますか?