Thread (6 messages) flat view 6 messages, 2 authors, 2016-06-15

Re: git grep -F doesn't behave like grep -F?

From: Torne (Richard Coles) <hidden>
Date: 2016-06-15 22:53:50

On 18 May 2012 13:37, René Scharfe [off-list ref] wrote:
Am 18.05.2012 13:00, schrieb Torne (Richard Coles):
quoted
Hi folks,

git grep -F is documented as: "Use fixed strings for patterns (don’t
interpret pattern as a regex)."

whereas grep -F is documented as "Interpret PATTERN as a  list  of
fixed  strings,  separated  by newlines,  any  of  which is to be
matched."

This accurately describes how they behave, which means that git grep
-F with a pattern containing newlines never matches anything (at least
as far as I can see). Is this intentional, or an oversight? The
ability to grep -F for a list (e.g. the output of another grep) is
pretty handy...

You could use -f- (read patterns from stdin).
Ah, yes, rewriting

git grep -F "`git grep -o someregex`"

as

git grep -o someregex | git grep -F -f-

works, but it's not how I immediately think to do it :)
That said, it looks like a missing feature to me -- at least I didn't know
that grep -F takes newline separated lists of search strings.  And this
doesn't seem to be restricted to invocations with -F, only; a plain grep
with regexps does it as well.
Yeah, it doesn't seem like adding it would break anything; patterns
with newlines don't match any lines by definition currently :)

-- 
Torne (Richard Coles)
torne@google.com
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help