diff options
author | Linus Torvalds <torvalds@osdl.org> | 2005-09-12 12:06:10 -0700 |
---|---|---|
committer | Junio C Hamano <junkio@cox.net> | 2005-09-12 13:20:03 -0700 |
commit | f22cc3fcbfe7755154a3a151215abd39162e2e85 (patch) | |
tree | 8134b80bab67ee5e8f7979cba829322f71bcba37 /git-grep.sh | |
parent | ba8a4970c790c9a03bb3ed72e24d86bd8aa11a67 (diff) | |
download | git-f22cc3fcbfe7755154a3a151215abd39162e2e85.tar.gz git-f22cc3fcbfe7755154a3a151215abd39162e2e85.tar.xz |
[PATCH] Add "git grep" helper
Very convenient shorthand for
git-ls-files [file-patterns] | xargs grep <pattern>
which I tend to do all the time.
Yes, it's trivial, but it's really nice. I can do
git grep '\<some_variable\>' 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 <torvalds@osdl.org>
Signed-off-by: Junio C Hamano <junkio@cox.net>
Diffstat (limited to 'git-grep.sh')
-rwxr-xr-x | git-grep.sh | 20 |
1 files changed, 20 insertions, 0 deletions
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" |