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내 경우에는)을 한 번만 반복하면 되기 때문에 시간이 훨씬 덜 걸립니다.

관련 정보