각 줄에 하나의 문자열을 포함하는 큰 파일이 있습니다. 문자열이 파일에 있는지 빠르게 확인할 수 있기를 원합니다. 이상적으로는 이진 절단 유형 알고리즘을 사용하여 수행됩니다.
일부 인터넷 검색 은 이진 검색 알고리즘을 사용하여 주어진 접두사로 시작하는 모든 문자열을 찾아 출력 할 것을 약속 look
하는 -b
플래그로 명령을 공개했습니다 . 불행히도 올바르게 작동하지 않는 것 같고 파일에있는 문자열에 대해 null 결과를 반환합니다 (동등한 grep
검색에 의해 올바르게 반환됩니다 ).
누구나이 파일을 효율적으로 검색하는 다른 유틸리티 또는 전략을 알고 있습니까?
look -b
오류로 인해 실패했습니다 File too large
. 모든 것을 메모리로 읽으려고한다고 생각합니다.
look
명령이 올바르게 작동하려면 로케일을 무시하고 하드 코딩 된 정렬과 같은 C를 사용하기 때문에 버그를 열었습니다. 이 혼란스러운 행동으로 인해 : bugzilla.kernel.org/show_bug.cgi?id=198011