내 문자열은 파일 경로입니다. 예를 들어 s/14/11/13/15/n7ce49B_235_25ed2d70.jpg
내 패턴은 모두 n7ce49B_.+
.
GNU grep 2.6.3
아래에서 달리고 있어요데비안 6.0.10존재하다델 DL360G7서버(이 시스템의 성능에 대한 아이디어를 제공하기 위해 언급함)에는 15k HDD가 있으며 다음 명령은 time LC_ALL=C grep -E -f path_to_patterns_file path_to_strings_file
완료할 수 없습니다. 서버 스왑이 끔찍합니다. 20,000개 패턴을 만드는 데 3시간 이상이 걸립니다.
이것은 나에게 합리적이지 않은 것 같습니다.
의견 요청에 따라 다음 문서가 제공됩니다.파일 경로 20k 패턴
다음을 통해 입력 라인 및 패턴 수를 테스트하고 조정할 수도 있습니다.
xxd -p /dev/urandom | fold -sw 100 | head -n 1250 |
grep -Ef <(xxd -p /dev/urandom | fold -sw 10 | head -n 20000)
답변1
이전 버전의 GNU grep에서 성능 문제가 발생했습니다(버그 #22357)해결됨이를 통해 제출, 2.28에 출시되었지만 변경됨일부 회귀를 도입했습니다.grep
이므로 GNU 3.0 이상을 사용해야 합니다 .