diff --git a/CHANGELOG.md b/CHANGELOG.md index 88169fb..3065138 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,8 @@ Bug fixes: * [BUG #1581](https://github.com/BurntSushi/ripgrep/issues/1581): Corrects some egregious markup output in `--help`. +* [BUG #1591](https://github.com/BurntSushi/ripgrep/issues/1591): + Mention the special `$0` capture group in docs for the `-r/--replace` flag. 12.1.0 (2020-05-09) diff --git a/crates/core/app.rs b/crates/core/app.rs index 9535844..927b397 100644 --- a/crates/core/app.rs +++ b/crates/core/app.rs @@ -2576,10 +2576,13 @@ Replace every match with the text given when printing results. Neither this flag nor any other ripgrep flag will modify your files. Capture group indices (e.g., $5) and names (e.g., $foo) are supported in the -replacement string. In shells such as Bash and zsh, you should wrap the -pattern in single quotes instead of double quotes. Otherwise, capture group -indices will be replaced by expanded shell variables which will most likely -be empty. +replacement string. Capture group indices are numbered based on the position of +the opening paranthesis of the group, where the leftmost such group is $1. The +special $0 group corresponds to the entire match. + +In shells such as Bash and zsh, you should wrap the pattern in single quotes +instead of double quotes. Otherwise, capture group indices will be replaced by +expanded shell variables which will most likely be empty. To write a literal '$', use '$$'.