From f22cc3fcbfe7755154a3a151215abd39162e2e85 Mon Sep 17 00:00:00 2001 From: Linus Torvalds Date: Mon, 12 Sep 2005 12:06:10 -0700 Subject: [PATCH] [PATCH] Add "git grep" helper Very convenient shorthand for git-ls-files [file-patterns] | xargs grep which I tend to do all the time. Yes, it's trivial, but it's really nice. I can do git grep '\' arch/i386 include/asm-i386 and it does exactly what you'd think it does. And since it just uses the normal git-ls-files file patterns, you can do things like git grep something 'include/*.h' and it will search all header files under the include/ subdirectory. Signed-off-by: Linus Torvalds Signed-off-by: Junio C Hamano --- Makefile | 2 +- git-grep.sh | 20 ++++++++++++++++++++ 2 files changed, 21 insertions(+), 1 deletion(-) create mode 100755 git-grep.sh diff --git a/Makefile b/Makefile index 5b028b1d9..9c2bdd642 100644 --- a/Makefile +++ b/Makefile @@ -76,7 +76,7 @@ SCRIPT_SH = \ git-tag.sh git-verify-tag.sh git-whatchanged.sh git.sh \ git-applymbox.sh git-applypatch.sh \ git-merge.sh git-merge-stupid.sh git-merge-octopus.sh \ - git-merge-resolve.sh + git-merge-resolve.sh git-grep.sh SCRIPT_PERL = \ git-archimport.perl git-cvsimport.perl git-relink.perl \ diff --git a/git-grep.sh b/git-grep.sh new file mode 100755 index 000000000..db2296c33 --- /dev/null +++ b/git-grep.sh @@ -0,0 +1,20 @@ +#!/bin/sh +flags= +while :; do + pattern="$1" + case "$pattern" in + -i|-I|-a|-E|-H|-h|-l) + flags="$flags $pattern" + shift + ;; + -*) + echo "unknown flag $pattern" >&2 + exit 1 + ;; + *) + break + ;; + esac +done +shift +git-ls-files -z "$@" | xargs -0 grep $flags "$pattern" -- 2.30.2