동일한 파일에서 여러 키워드를 개별적으로 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
내 경우에는)을 한 번만 반복하면 되기 때문에 시간이 훨씬 덜 걸립니다.