# bat-extras: batgrep
Quickly search through and highlight files using [ripgrep](https://github.com/burntsushi/ripgrep).
Search through files or directories looking for matching regular expressions (or fixed strings with `-F`), and print the output using `bat` for an easy and syntax-highlighted experience.
## Usage
batgrep [OPTIONS] PATTERN [PATH...]
## Options
| Short | Long | Description |
| ----- | ---------------------------- | ------------------------------------------------------------ |
| `-i` | `--ignore-case` | Use case insensitive searching. |
| `-s` | `--case-sensitive` | Use case sensitive searching. |
| `-S` | `--smart-case` | Use smart case searching. |
| `-A` | `--after-context=[LINES]` | Display the next *n* lines after a matched line. |
| `-B` | `--before-context=[LINES]` | Display the previous `n` lines before a matched line. |
| `-C` | `--context=[LINES]` | A combination of `--after-context` and `--before-context`. |
| `-p` | `--search-pattern` | Tell pager to search for `PATTERN`. Currently supported pagers: `less`. |
| | `--no-follow` | Do not follow symlinks. |
| | `--no-snip` | Do not show the `snip` decoration.
This is automatically enabled when `--context=0` or when `bat --version` is less than `0.12.x`. |
| | `--no-highlight` | Do not highlight matching lines.
This is automatically enabled when `--context=0`. |
| | `--color` | Force color output. |
| | `--no-color` | Force disable color output. |
| | `--paging=["never"/"always"]`| Enable/disable paging. |
| | `--pager=[PAGER]` | Specify the pager to use. |
| | `--terminal-width=[COLS]` | Generate output for the specified terminal width. |
| | `--no-separator` | Disable printing separator between files. |
| | `--rga` | Use `ripgrep-all` instead of `ripgrep`. |
The following options are passed directly to ripgrep, and are not handled by this script.
| Short | Long | Notes |
| ----- | -------------------------- | ------------------------------------------------------------ |
| `-F` | `--fixed-strings` | |
| `-U` | `--multiline` | |
| `-P` | `--pcre2` | |
| `-z` | `--search-zip` | |
| `-w` | `--word-regexp` | |
| | `--one-file-system` | |
| | `--multiline-dotall` | |
| | `--ignore` / `--no-ignore` | |
| | `--crlf` / `--no-crlf` | |
| | `--hidden` / `--no-hidden` | |
| `-E` | `--encoding` | This is unsupported by `bat`, and may cause issues when trying to display unsupported encodings. |
| `-g` | `--glob` | |
| `-t` | `--type` | |
| `-T` | `--type-not` | |
| `-m` | `--max-count` | |
| | `--max-depth` | |
| | `--iglob` | |
| | `--ignore-file` | |
## Installation
This script is a part of the `bat-extras` suite of scripts. You can find install instructions [here](../README.md#installation).
## Caveats
**Differences from ripgrep:**
- `--follow` is enabled by default for `batgrep`.
- Not all the `ripgrep` options are supported.
## Issues?
If you find an issue or have a feature suggestion, make a pull request or issue through GitHub!
Contributions are always welcome.