--- obj: application repo: https://github.com/phiresky/ripgrep-all rev: 2024-02-27 --- # ripgrep-all rga is a line-oriented search tool that allows you to look for a [regex](../../tools/Regex.md) in a multitude of file types. rga wraps the awesome [ripgrep](ripgrep.md) and enables it to search in [pdf](../../files/PDF.md), docx, [sqlite](../../dev/programming/SQLite.md), jpg, movie subtitles ([mkv](../../files/media/Matroska.md), mp4), etc. ## USAGE: > rga \[RGA OPTIONS\] \[RG OPTIONS\] PATTERN \[PATH \...\] ## FLAGS: | Option | Description | | ------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | --rga-accurate | Use more accurate but slower matching by [mime](../../files/MIME.md) type<br>By default, rga will match files using file extensions. Some programs,<br>such as sqlite3, don't care about the file extension at all, so users<br>sometimes use any or no extension at all. With this flag, rga will try<br>to detect the [mime](../../files/MIME.md) type of input files using the magic bytes (similar<br>to the [`file`](system/file.md) utility), and use that to choose the adapter. Detection is<br>only done on the first 8KiB of the file, since we can't always seek on the input (in archives). | | --rga-no-cache | Disable caching of results<br>By default, rga caches the extracted text, if it is small enough, to a<br>database in ${XDG_CACHE_DIR-~/.cache}/ripgrep-all on Linux,<br>~Library/Caches/ripgrep-all on macOS, or C:\\Users\\username\\AppData\\Local\\ripgrep-all on Windows. This way,<br>repeated searches on the same set of files will be much faster. If you<br>pass this flag, all caching will be disabled. | | --rga-list-adapters | List all known adapters | | --rga-print-config-schema | Print the [JSON Schema](../../tools/JSON%20Schema.md) of the configuration file | | --rg-help | Show help for [ripgrep](ripgrep.md) itself | | --rg-version | Show version of [ripgrep](ripgrep.md) itself | | -V, --version | Prints version information | ## OPTIONS: | Option | Description | | ----------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | --rga-adapters=\<adapters\>... | Change which adapters to use and in which priority order (descending)<br>"foo,bar" means use only adapters foo and bar. "-bar,baz" means use all default adapters except for bar and baz. "+bar,baz" means use all default adapters and also bar and baz. | | --rga-cache-compression-level=\<compression-level\> | [ZSTD compression](../../files/Zstd%20Compression.md) level to apply to adapter outputs before storing in<br>cache db<br>Ranges from 1 - 22 \[default: 12\] | | --rga-config-file=\<config-file-path\> | | | --rga-max-archive-recursion=\<max-archive-recursion\> | Maximum nestedness of archives to recurse into \[default: 5\] | | --rga-cache-max-blob-len=\<max-blob-len\> | Max compressed size to cache<br>Longest byte length (after compression) to store in cache. Longer<br>adapter outputs will not be cached and recomputed every time.<br>Allowed suffixes on command line: k M G \[default: 2000000\] | | --rga-cache-path=\<path\> | Path to store cache db \[default: /home/user/.cache/ripgrep-all\] | | -h | Shows a concise overview | | --help | Shows more detail and advanced options | ## Available Adapters rga works with _adapters_ that adapt various [file formats](../../files/MIME.md). It comes with a few adapters integrated: ``` rga --rga-list-adapters ``` Adapters: - **pandoc** Uses pandoc to convert binary/unreadable text documents to plain [markdown](../../files/Markdown.md)-like text Runs: pandoc --from= --to=plain --wrap=none --markdown-headings=atx Extensions: .epub, .odt, .docx, .fb2, .ipynb, .html, .htm - **poppler** Uses pdftotext (from poppler-utils) to extract plain text from [PDF](../../files/PDF.md) files Runs: pdftotext - - Extensions: .pdf Mime Types: application/pdf - **postprocpagebreaks** Adds the page number to each line for an input file that specifies page breaks as ascii page break character. Mainly to be used internally by the poppler adapter. Extensions: .asciipagebreaks - **ffmpeg** Uses [ffmpeg](../media/ffmpeg.md) to extract video metadata/chapters, subtitles, lyrics, and other metadata Extensions: .mkv, .mp4, .avi, .mp3, .ogg, .flac, .webm - **zip** Reads a [zip](../../files/ZIP.md) file as a stream and recurses down into its contents Extensions: .zip, .jar Mime Types: application/zip - **decompress** Reads compressed file as a stream and runs a different extractor on the contents. Extensions: .als, .bz2, .gz, .tbz, .tbz2, .tgz, .xz, .zst Mime Types: application/gzip, application/x-bzip, application/x-xz, application/zstd - **tar** Reads a [tar](compression/tar.md) file as a stream and recurses down into its contents Extensions: .tar - **sqlite** Uses [sqlite](../../dev/programming/SQLite.md) bindings to convert [sqlite](../../dev/programming/SQLite.md) databases into a simple plain text format Extensions: .db, .db3, .sqlite, .sqlite3 Mime Types: application/x-sqlite3 The following adapters are disabled by default, and can be enabled using '--rga-adapters=+foo,bar': - **mail** Reads mailbox/mail files and runs extractors on the contents and attachments. Extensions: .mbox, .mbx, .eml Mime Types: application/mbox, message/rfc822 ## Configuration In addition to the command-line flags, you can configure rga via the config file. The config file is located in `~/.config/ripgrep-all/config.jsonc` or your OS-equivalent. The file is in the json-with-comments format. ### Custom adapters Since version 1.0, you can specify custom adapters that invoke external preprocessing scripts in the config file. See [Community Adapters](https://github.com/phiresky/ripgrep-all/discussions/categories/show-your-adapter) for a list of adapters that other people are using. For example, the integrated PDF-to-text adapter would look like the following in the config file: ```json "custom_adapters": [ { "name": "poppler", "version": 1, "description": "Uses pdftotext (from poppler-utils) to extract plain text from PDF files", "extensions": ["pdf"], "mimetypes": ["application/pdf"], "binary": "pdftotext", "args": ["-", "-"], "disabled_by_default": false, "match_only_by_mime": false, "output_path_hint": "${input_virtual_path}.txt.asciipagebreaks" } ] ```