同じファイルで複数のキーワードを個別に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回だけ繰り返すだけで時間がかなり少なくなります。