file.txtファイルに格納されているパターンを使用してdata.txtからフィルタデータを取得しようとしています。grep -vfが大きいファイルでは遅すぎる
grep -v -f filter.txt data.txt > op.txt
、以下のようにこれはgrepはdata.txtをでfilter.txtで30-40K線や〜300Kラインのためのより多く10〜15分かかります。
これをスピードアップする方法はありますか?
data2
data3
op.txt
data.txtを
data1
data2
data3
filter.txt
data1
これはcodeforesterが提供するソリューションで動作しますが、filter.txtが空の場合に失敗します。
ファイルの両方からのサンプル行を含めてください。あなたはこの問題について広範な議論をしているこの記事を見てみたいかもしれません:http://stackoverflow.com/questions/42239179/fastest-way-to-find-lines-of-a-text-file-from-別のより大きいテキストファイル内のファイル – codeforester
リンクありがとう。類似の問題に関する良い議論。 awk 'FNR == NR {hash [$ 1];次の} $ 2のハッシュ 'file1.txt FS =' | ' file2.txtは行のマッチングには使用できますが、反転した結果が必要です。どのようにそれを反転一致のために働かせるか分からない。 – user3150037