rga:在PDF,电子书,Office文档,档案等中搜索文本(ripgrep包装器)

ga (或ripgrep-all)是一种命令行工具,可以递归搜索目录中的所有文件以查找正则表达式模式,并可以在Linux,macOS和Windows上运行。它是一个包装 ripgrep,一个面向行的递归搜索程序。最重要的是,您可以搜索许多文件类型,包括PDF,DOCX,ODT,EPUB,SQLite数据库,嵌入在MKV或MP4文件中的电影字幕,ZIP或GZ等档案。更多

rga可用于从文件夹中可用的文件中查找文本,文件夹中包含许多文件类型各异的文件,即使其中一些文件在存档中也可用。
而且由于有了多线程功能,即使从第一次运行开始,它的速度也很快。但是,由于有了缓存,后续运行会更快(例如搜索纯文本文件)。但是,您可以根据需要禁用缓存。 --rga-no-cache
rga使用ripgrep(rg)并设置了一些选项来执行搜索。某些文件类型使用外部程序执行实际工作。例如,使用ffmpeg从mkv或mp4文件中读取字幕,并使用pandoc将诸如EPUB,ODT,DOCX,FB2,IPYNB之类的文档转换为类似markdown的纯文本。使用夹点和焦油读取存档的内容。除了搜索嵌入在文档,档案和mkv或mp4文件中的字幕中的文本外,rga还可以使用OCR或扫描的PDF文件(使用tesseract)在JPG或PNG图像中搜索文本。但是,由于此功能很慢且几乎没有用,因此默认情况下将其禁用,但是可以通过以下方式启用它: --rga-adapters=+pdfpages,tesseract与搜索有关:钻取:新的桌面文件搜索实用程序,使用聪明的爬网而不是索引
这是rga(ripgrep-all)适配器和支持的文件类型的列表。

  • ffmpeg:
    • 使用ffmpeg提取视频元数据/章节和字幕
    • 扩展名:.mkv,.mp4,.avi
  • 潘多克:
    • 使用pandoc将二进制/不可读的文本文档转换为类似markdown的纯文本
    • 扩展名:.epub,.odt,.docx,.fb2,.ipynb
  • 杨树:
    • 使用pdftotext(来自poppler-utils)从PDF文件中提取纯文本。
    • 扩展名:.pdf
  • 邮编:
    • 将zip文件作为流读取并递归到其内容
    • 扩展名:.zip
    • MIME类型:应用程序/ zip
  • 解冻:
    • 以流形式读取压缩文件,然后对内容运行另一个提取器。
    • 扩展名:.tgz,.tbz,.tbz2,.gz,.bz2,.xz,.zst
    • MIME类型:application / gzip,application / x-bzip,application / x-xz,application / zstd
  • 焦油:
    • 读取tar文件作为流并递归到其内容
    • 扩展名:.tar
  • sqlite:
    • 使用sqlite绑定将sqlite数据库转换为简单的纯文本格式
    • 扩展名:.db,.db3,.sqlite,.sqlite3
    • MIME类型:应用程序/ x-sqlite3
  • pdfpages(默认禁用):
    • 将PDF转换为PNG文件到单个页面。仅与tesseract结合使用
    • 扩展名:.pdf
  • tesseract(默认情况下禁用):
    • 使用tesseract对图像执行OCR并使其可搜索。可能需要 -j1 防止系统过载。确保已安装tesseract。
    • 扩展名:.jpg,.png

下载rga(ripgrep-all)

rga GitHub项目页面具有 在Linux,Windows或macOS上安装该工具的说明
不要忘记安装rga适配器使用的依赖项,以便您可以搜索所有受支持的文件类型(以及ripgrep本身):ripgrep,pandoc,poppler(来自Debian / Ubuntu的poppler-utils软件包)。名称随Linux发行版的不同而不同:“使用中”,ffmpeg和cargo。
安装RGA Binary 立即下载 解压缩Linux x86_64 .tar.gz归档文件并安装rga和rga-preproc二进制文件 /usr/local/bin 使用(在提取这两个二进制文件的文件夹中执行命令):

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

安装后,使用rga,然后使用搜索查询和要搜索的文件夹。例如:

rga "text to find" ~/Documents

还可以结帐 RGA标志,及其帮助信息(rga --help)。

Sidebar