Pesquisa do Spotlight com contexto?

1

Gostaria de realizar pesquisas para:

1) Pode pesquisar no texto em um grande número de arquivos pdf. Especificamente, eu quero pesquisar em um diretório com diretórios aninhados vários camada profunda, e eles são principalmente arquivos pdf. Existem cerca de 50 mil arquivos (cerca de 10 a 50 páginas cada), portanto, o desempenho é crucial.

2) Quando encontrar o resultado, ele deve retornar as correspondências mais o contexto (pense em grep -C 2 ), em vez de apenas os nomes dos arquivos que contêm a consulta.

Eu imagino que isso pode ser mais fácil com a linha de comando, mas eu não me importo de usar um programa, se é mais fácil. Eu não preciso de curingas ou capacidade de expressão regular, mas ele deve suportar strings como uma frase literal ("não").

Este script é meio semelhante ao que eu preciso, mas usa o grep para obter os resultados e grep não entende pdf (e eu não quero converter cada pdf em texto para cada pesquisa).

Existe uma maneira de fazer isso? Obrigado.

    
por ceiling cat 24.04.2014 / 10:00

1 resposta

1

Como usuário do Linux, essas são as duas opções que me vêm à mente:

  • Recoll - poderosa ferramenta de pesquisa de área de trabalho com uma GUI e CLI. Mostra os resultados da pesquisa em seu contexto. A verbosidade do contexto é configurável (Opções → Opções da GUI → Parâmetros de pesquisa). Comparável ao spotlight, pois requer indexação antes de realizar uma pesquisa.

    ➥ Use isto para grandes bibliotecas de documentos

  • pdfgrep - PDF equivalente à ferramenta CLI grep. Também pode mostrar resultados em seu contexto. A verbosidade do contexto também é configurável ( --context <number of words> ). Funciona sem pré-construir um índice. Ordens de magnitude mais lentas que Recoll e Spotlight para bibliotecas de documentos maiores.

    ➥ Use isso para pesquisas rápidas em coleções menores

Ambos estão disponíveis através de macports.

    
por 26.04.2014 / 10:32