4 ms·
One thing I wish ripgrep had is support for AND conditions.
by nikbackm 3y ago
One thing I wish ripgrep had is support for AND conditions.
- kmarc 3y agoMaybe I'm missing something but I only use it with AND conditions (usually in the form of 'foo 'bar and it only matches lines with foo AND bar both present)
- burntsushi 3y agoA search for `rg -e foo -e bar` will return lines that match either foo or bar. Some lines may have both, but it isn't required. The standard way to run "AND" queries is through shell pipelines. That is, `rg foo | rg bar` will only print lines containing both. But composition usually comes with costs. The output reverts to the standard grep format and it doesn't interact nicely with contextual options like -C/--context. See: https://github.com/BurntSushi/ripgrep/issues/875 https://github.com/BurntSushi/ripgrep/issues/875
- bhaak 3y agoAs I have overloaded my rg with a customized rg alias, I can't pipe multiple rg calls. Otherwise it would look like this: # rg nokogiri | rg linux <stdin>:11:Gemfile.lock:647: nokogiri (1.15.5-x86_64-linux) But that is a me problem. The workaround is of course just to pipe into grep instead.
- burntsushi 3y agoOr `\rg`, which will use the command directly and skip your alias.
- asicsp 3y agoIf you don't mind using PCRE, you can do it. For example: rg -P '(?=.*pat1)(?=.*pat2)(?=.*pat3)' You could create a shell function shortcut if you need to use it often. But yeah, having it as a feature of the tool itself would be nice.
- boyter 3y agoThat’s one of the reasons I made this actually https://github.com/boyter/cs https://github.com/boyter/cs I wanted and boolean syntax mixed with fzf instant search. It’s not as fast as ripgrep of course but it’s not solving the same problem.