1
0
mirror of https://github.com/jbranchaud/til synced 2026-01-03 07:08:01 +00:00

Add Find Occurrences Of Multiple Values With Ripgrep as a Unix TIL

This commit is contained in:
jbranchaud
2023-06-23 15:16:55 -05:00
parent 3c7899c67d
commit c185ac18c5
2 changed files with 27 additions and 1 deletions

View File

@@ -10,7 +10,7 @@ pairing with smart people at Hashrocket.
For a steady stream of TILs, [sign up for my newsletter](https://crafty-builder-6996.ck.page/e169c61186).
_1318 TILs and counting..._
_1319 TILs and counting..._
---
@@ -1269,6 +1269,7 @@ _1318 TILs and counting..._
- [Find Duplicate Lines In A File](unix/find-duplicate-lines-in-a-file.md)
- [Find Files With fd](unix/find-files-with-fd.md)
- [Find Newer Files](unix/find-newer-files.md)
- [Find Occurrences Of Multiple Values With Ripgrep](unix/find-occurrences-of-multiple-values-with-ripgrep.md)
- [Fix Unlinked Node Binaries With asdf](unix/fix-unlinked-node-binaries-with-asdf.md)
- [Forward Multiple Ports Over SSH](unix/forward-multiple-ports-over-ssh.md)
- [Generate A SAML Key And Certificate Pair](unix/generate-a-saml-key-and-certificate-pair.md)

View File

@@ -0,0 +1,25 @@
# Find Occurrences Of Multiple Values With Ripgrep
Let's say I have a several values that show up throughout the files in my
project. They are `Valid`, `Restricted`, `Refunded`, `Disputed`, and `Banned`.
I want to find all occurrences of each of these values.
This can be done with [`rg` (ripgrep)](https://github.com/BurntSushi/ripgrep)
and a bit of regex.
```bash
rg "\b(Valid|Restricted|Refunded|Disputed|Banned)\b"
```
This uses `\b` on both ends to indicate word boundaries. This ensures it
matches on `Valid` without also matching on `Validate`. It then wraps all the
options in parentheses separated by `|` which says, "match on this word, this
word, ..., or this word".
I can even take this a step further by only matching on quoted instances of
these words like so:
```bash
$ rg "[\"']\b(Valid|Restricted|Refunded|Disputed|Banned)\b[\"']"
```