Blog Linux Avante

rga: Pesquise texto em PDF, e-books, documentos do Office, arquivos e muito mais (ripgrep Wrapper)

1 de julho de 2019

pesquisa rga ripgrep-all em documentos no Linux

rga (ou ripgrep-all) é uma ferramenta de linha de comando para pesquisar recursivamente todos os arquivos em um diretório para um padrão regex, que roda em Linux, macOS e Windows. É um wrapper para ripgrep, o programa de pesquisa recursiva orientada por linha, além do qual permite a pesquisa em uma infinidade de tipos de arquivo como PDF, DOCX, ODT, EPUB, bancos de dados SQLite, legendas de filmes incorporados em MKV ou Arquivos MP4, arquivos como ZIP ou GZ e muito mais.

rga é ótimo quando você deseja pesquisar algum texto de um arquivo disponível em uma pasta com muitos documentos de vários tipos de arquivo, mesmo que alguns deles estejam disponíveis em arquivos.

E é rápido também, mesmo desde a primeira execução, graças ao multithreading. Em execuções subsequentes, porém, é ainda mais rápido (como se estivesse pesquisando em arquivos de texto simples) graças ao cache. O cache pode ser desabilitado se você desejar, no entanto, usando --rga-no-cache.

rga usa ripgrep (rg) para fazer a pesquisa, com algumas opções definidas. Para alguns tipos de arquivo, programas externos são usados para fazer o trabalho real, por exemplo, usando ffmpeg para ler legendas de arquivos mkv ou mp4, pandoc para converter documentos como EPUB, ODT, DOCX, FB2 ou IPYNB em texto simples como markdown, e grip e tar para ler o conteúdo do arquivo.

Além de poder pesquisar texto em documentos, arquivos e legendas embutidas em arquivos mkv ou mp4, o rga também pode pesquisar texto em imagens JPG ou PNG, ou arquivos PDF digitalizados, usando OCR (com o uso de tesseract). No entanto, esse recurso está desabilitado por padrão, porque é lento e não é útil na maioria das vezes, mas pode ser habilitado usando --rga-adapters=+pdfpages,tesseract.

Esta é uma lista de adaptadores rga (ripgrep-all) e tipos de arquivo suportados:

  • ffmpeg:

    • Usa ffmpeg para extrair metadados/capítulos e legendas de vídeo
    • Extensões: . Mkv, .mp4, .avi
  • pandoc:

    • Usa pandoc para converter documentos de texto binários/ilegíveis em texto simples semelhante a markdown
    • Extensões:. epub, .odt, .docx, .fb2, .ipynb
  • poppler:

    • Usa pdftotext (de poppler-utils) para extrair texto simples de arquivos PDF
    • Extensões: . Pdf
  • zip:

    • Lê um arquivo zip como um fluxo e recorre em seu conteúdo
    • Extensões: . Zip
    • Tipos MIME: aplicativo/zip
  • decompress:

    • Lê o arquivo compactado como um fluxo e executa um extrator diferente no conteúdo.

    • Extensões: . Tgz, .tbz, .tbz2, .gz, .bz2, .xz, .zst

    • Tipos Mime: application/gzip, application/x-bzip, application/x-xz, application/zstd

  • tar:

    • Lê um arquivo tar como um fluxo e retorna ao seu conteúdo
    • Extensões: . Tar
  • sqlite:

    • Usa ligações sqlite para converter bancos de dados sqlite em um formato de texto simples
    • Extensões: . Db, .db3, .sqlite, .sqlite3
    • Tipos Mime: application/x-sqlite3
  • pdfpages (desativado por padrão):

    • Converte um pdf em suas páginas individuais como arquivos png. Útil apenas em combinação com tesseract
    • Extensões: .pdf
  • tesseract (desativado por padrão):

    • Usa tesseract para executar OCR em imagens para torná-las pesquisáveis . Pode ser necessário -j1 para evitar sobrecarregar o sistema. Certifique-se de ter o tesseract instalado.

    • Extensões:. Jpg, .png

Baixar rga (ripgrep-all)

A página do projeto rga GitHub tem instruções para instalar a ferramenta no Linux, Windows ou macOS.

Lembre-se de instalar as dependências usadas pelos adaptadores rga para poder pesquisar em todos os tipos de arquivo que ele suporta (e o próprio ripgrep): ripgrep, pandoc, poppler (pacote poppler-utils no Debian/Ubuntu; o nome depende da distribuição Linux que você está usando), ffmpeg e cargo.

Você pode instalar o binário rga baixando o arquivo Linux x86_64 .tar.gz, extraí-lo e instalar os binários rga e rga-preproc em /usr/local/bin usando (execute o comando na pasta onde esses dois binários foram extraídos):

Comandos para usar no terminal

sudo install rga rga-preproc /usr/local/bin/

Após a instalação, use-o digitando rga seguido por sua consulta de pesquisa e a pasta onde procurar. Por exemplo:

Comandos para usar no terminal

rga "text to find" ~/Documents

Verifique também os sinalizadores rga disponíveis e suas informações de ajuda (rga --help).

Confira a versão original desse post em inglês
Propaganda
Blog Comments powered by Disqus.
Propaganda