zgrep -fを使用して、照会ファイルの各行について、検索される単一のファイル内の最初の一致だけを検索しようとしています。検索対象のファイルが膨大なので(〜3GB)、zgrepが現在のクエリ行に一致するものを見つけたら、検索を停止してから、クエリファイルの次の行でパターンを検索することが重要です。私の問題は、 "zgrep -m 1 -f"はクエリファイルの最初のクエリ行の最初の一致のみを見つけることです。クエリファイル全体の読み込みを停止します。この検索をより効率的に実行する-mと-f(z)grepオプションを組み合わせる他の方法はありますか? (?)ファイル内の各行に最初に一致するzgrep
^dog
^cat
そして、私の3百万行から3行には、被検索ファイル(Googleニュース:
は、ここに私の1000行のクエリファイル構造(wordList.txt)から2行です-vectors-negative300.txt.gz)
dog 0.017198 -0.007493 -0.057982 0.054051 -0.028336
accordion 0.012590 -0.003692 -0.014291 0.057166 -0.025180
cat 0.004059 0.067190 -0.093874 0.071370 0.038900
そして、残念ながら、このコマンド:
% zgrep -m 1 -f wordList.txt GoogleNews-vectors-negative300.txt.gz > myVectors.txt
リターンのみF (「-m 1」なし)は、このコマンドのに対し
dog 0.017198 -0.007493 -0.057982 0.054051 -0.028336
:最初のクエリのためのIRSTマッチ
% zgrep -f wordList.txt GoogleNews-vectors-negative300.txt.gz > myVectors.txt
はフル期待される出力を返しますが、それはファイル全体を検索するため、無限に長い時間がかかります毎回:
dog 0.017198 -0.007493 -0.057982 0.054051 -0.028336
cat 0.004059 0.067190 -0.093874 0.071370 0.038900