Eu tenho um arquivo grande contendo uma string em cada linha. Eu gostaria de poder determinar rapidamente se uma string está no arquivo. Idealmente, isso seria feito usando um algoritmo binário do tipo chop.
Alguns pesquisadores do Google revelaram o look
comando com a -b
bandeira que promete localizar e gerar todas as strings que começam com um determinado prefixo usando um algoritmo de pesquisa binária. Infelizmente, ele não parece funcionar corretamente e retorna resultados nulos para as seqüências que eu sei que estão no arquivo (elas são retornadas corretamente pela grep
pesquisa equivalente ).
Alguém conhece outro utilitário ou estratégia para pesquisar esse arquivo com eficiência?
look -b
falhou para mim com um erro File too large
. Eu acho que está tentando ler a coisa toda na memória.
look
comando funcione corretamente, porque o look parece ignorar o código do idioma e apenas usa C como a classificação codificada, também abri um bug por causa deste comportamento confuso: bugzilla.kernel.org/show_bug.cgi?id=198011