대규모로 정렬된(순차적) 텍스트 파일을 이진 분할 검색할 수 있는 검색 유틸리티가 있습니까?

대규모로 정렬된(순차적) 텍스트 파일을 이진 분할 검색할 수 있는 검색 유틸리티가 있습니까?

네, 이상하게 들리는 거 알아요. 순차 분할과 이진 분할은 혼합될 수 없습니다. 시퀀스가 파일 자체 내의 바이트 오프셋이 아닌 한...

나는 그것을 bash 스크립트에서 사용하고 있습니다 dd. 8GB 파일에 대해 3-9초의 검색 및 찾기 시간이 있습니다. 그래서 작동합니다(하지만 제가 아는 것보다 느립니다)... 저는 이 휠을 연마하고 싶지는 않습니다. 저는 단지 bash에서 연습하는 것을 좋아합니다(프로젝트를 갖는 것이 언어를 배우는 가장 좋은 방법입니다). C/++ 등에서는 이것이 매우 간단할 것이라고 생각합니다. 다른 예(특히 bash 예)도 보고 싶습니다.

답변1

모든 기본 텍스트 처리 유틸리티는 필터 역할을 하도록 설계되었으며 대부분은 입력을 스트림으로 처리하도록 설계되었습니다(즉, 입력의 일부를 읽고 처리하고 해당 출력을 쓰고 반복). dd구문과 제공하는 옵션 측면에서 조금 특이합니다. dd유일한 쉘 인터페이스입니다lseek, 아시다시피 투박합니다. 이 지점에 도달하면 Perl이나 Python과 같은 보다 강력한 스크립팅 언어로 전환해야 할 때입니다.

관련 정보