grep -f は、-f を持たない grep より速く実行されます。

grep -f は、-f を持たない grep より速く実行されます。

同じファイルで複数のキーワードを個別にgrepingするよりもgrep -fが速い理由を教えてください。

場合によっては、両方の結果が数秒以内に発生します。一部のファイルでは、通常のgrepは15分かかりますが、grep -fは1分未満かかります。

grep -f <search_pattern_50keys_file.txt> <file_name>
grep search_key_1 <file_name>
grep search_key_1 <file_name>
...
...
grep search_key_50 <file_name>

ありがとう、ベラ

ベストアンサー1

私の経験では、実行時間に実際の違いはありません。非常に大きなテキストファイルを使用しようとしています。私のスキーマファイルには次のものが含まれます。

2a8f

そして

$ time grep 2a8f /tmp/md5sums > /dev/null

real    0m0,543s
user    0m0,439s
sys     0m0,104s

比較的

$ time grep -f pattern  /tmp/md5sums > /dev/null

real    0m0,544s
user    0m0,438s
sys     0m0,106s

0.5秒は1秒あたりですgrep。したがって、もちろん、grep別のパターンで50秒を実行すると25秒かかりますが、50パターンの単一のgrepはファイル(/tmp/md5sums私の場合)を1回だけ繰り返すだけで時間がかなり少なくなります。

おすすめ記事