9,912
stars
+0+2+36
224
forks
42
watchers
–
prs
–
issues
12
releases
–
discussions
README
rga: ripgrep, but also search in PDFs, E-Books, Office documents, zip, tar.gz, etc. rga is a line-oriented search tool that allows you to look for a regex in a multitude of file types. rga wraps the awesome [ripgrep] and enables it to search in pdf, docx, sqlite, jpg, movie subtitles (mkv, mp4), etc. [ripgrep]: https://github.com/BurntSushi/ripgrep For more detail, see this introductory blogpost: https://phiresky.github.io/blog/2019/rga--ripgrep-for-zip-targz-docx-odt-epub-jpg/ rga will recursively descend into archives and match text in every file type it knows. Here is an example directory with different file types: demo/ ├── greeting.mkv ├── hello.odt ├── hello.sqlite3 └── somearchive.zip ├── dir │ ├── greeting.docx │ └── inner.tar.gz │ └── greeting.pdf └── greeting.epub !rga output Integration with fzf !rga-fzf See the wiki for instructions of integrating rga with fzf. INSTALLATION Linux x64, macOS and Windows binaries are available [in GitHub Releases][latestrelease]. [latestrelease]: https://github.com/phiresky/ripgrep-all/releases/latest Linux Arch Linux pacman -S ripgrep-all Gentoo Linux emerge sys-apps/ripgrep-all Nix nix-env -iA nixpkgs.ripgrep-all Debian-based download the [rga binary][latestrelease] and get the dependencies like this: apt install ripgrep pandoc poppler-utils ffmpeg If ripgrep is not included in your package sources, get it from here. rga will search for all binaries it calls in \$PATH and the directory itself is in. Windows Note that installing via chocolatey or scoop is the only supported download method. If you download the binary from releases manually, you will not get the dependencies (for example pdftotext from poppler). If you get an error like VCRUNTIME140.DLL could not be found, you need to install vc_redist.x64.exe. Chocolatey choco install ripgrep-all Scoop scoop install rga Homebrew/Linuxbrew rga can be installed with Homebrew: brew install rga To install the dependencies that are each not strictly necessary but very useful: brew install pandoc poppler ffmpeg MacPorts rga can also be installed on macOS via MacPorts: sudo port install ripgrep-all Compile from source rga should compile with stable Rust (v1.75.0+, check with rustc --version). To build it, run the following (or the equivalent in your OS): ~$ apt install build-essential pandoc poppler-utils ffmpeg ripgrep cargo ~$ cargo install --locked ripgrep_all ~$ rga --version this should work now Available Adapters rga works with _adapters_ that adapt various file formats. It comes with a few adapters integrated: rga --rga-list-adapters You can also add custom adapters. See the wiki for more information. Adapters: - pandoc Uses pandoc to convert binary/unreadable text documents to plain markdown-like text Runs: pandoc --from= --to=plain --wrap=none --markdown-headings=atx Extensions: .epub, .odt, .docx, .fb2, .ipynb, .html, .htm - poppler Uses pdftotext (from po