Existe um utilitário de pesquisa que pode dividir binário para pesquisar um arquivo de texto ordenado (sequencial) grande?

5

Sim, sei que parece estranho. Seções seqüenciais e binárias não se misturam. Isto é, a menos que a sequência seja o deslocamento de byte dentro do próprio arquivo ...

Eu misturei uma pesquisa de divisão binária no script bash usando dd . Tem tempos de Busca e Localização de 3-9 segundos para um arquivo de 8 GB ... então funciona (mas mais lento do que eu sei que pode ser) ... Eu realmente prefiro não ter que polir essa roda; Apenas tive a minha vontade de fazer isso como um exercício de bash (ter um projeto é a melhor maneira de aprender um idioma, etc). Eu acho que isso seria bastante simples em C / ++, etc ... Estou curioso para ver alguns outros exemplos (particularmente bash ones.

    
por Peter.O 08.03.2011 / 20:23

1 resposta

3

Todos os utilitários de processamento de texto básico servem para atuar como filtros, e a maioria deve processar sua entrada como um fluxo (isto é, ler uma pequena entrada, processá-la, gravar a saída correspondente, repetir). dd é um pouco incomum, tanto pela sua sintaxe quanto pelas opções que oferece. dd é a única interface da shell para lseek e, como você percebeu, é desajeitado. Quando você chegar a este ponto, é hora de mudar para uma linguagem de script mais poderosa, como Perl ou Python.

    
por 08.03.2011 / 20:31