Subject: bug#52851: git grep feature: boolean logic

From: [email-masked]
Date: Tue, 28 Dec 2021 08:44:14 -0700

Hi.

You may want a different tool:

	awk '/pattern1/ && /pattern2/' ...
	awk '/pattern1/ || /pattern2/' ...
	awk '/pattern1/ && !/pattern2/' ...

And so on.

Seems much easier than stuffing boolean logic into grep.

Just a thought,

Arnold

Kevin Connor Arpe <[email-masked]> wrote:

> Hello,
>
> Recently, I was stumped with a difficult grep problem: I needed to filter
> files containing more than one regex (think: logical-and).  I didn't know
> how to do this using only a single invocation of GNU grep.  (Please correct
> me if I am wrong.)
>
> A bunch of Googling led me to discover that git has a grep sub-command that
> implements boolean logic with and/or/not/parens operators.  Manpage:
> https://git-scm.com/docs/git-grep, Source:
> https://github.com/git/git/blob/master/grep.c
>
> At the moment, it's not possible to use git grep very well outside of git
> repositories.  There are some issues around absolute and relative paths,
> plus "git working directory".
>
> Eventually, I settled on writing a crude shell script that wraps GNU grep
> to provide similar functionality.  However, I am aware of its inefficiency,
> as it requires multiple invocations of grep.
>
> Are people aware of this very cool grep feature with boolean logic?  I
> tried to search the GNU grep message archive, but I didn't see any
> discussion about it.  I'm curious what the GNU grep team thinks about this
> feature.
>
> Kind regards,
> Kevin Arpe
> Hongkong