summaryrefslogtreecommitdiff
path: root/rc
diff options
context:
space:
mode:
authorOri Bernstein <ori@eigenstate.org>2019-06-04 22:36:32 -0700
committerOri Bernstein <ori@eigenstate.org>2019-06-04 22:36:32 -0700
commit033c2812c29b0e81e6c055b80e0334ba5ed1f871 (patch)
tree8c9a7f87d03c5ce9d2702bd3b9ac1cce4e6fd652 /rc
parent12e136332a7dcb6e4d0b4a85fef9ff97dfa57200 (diff)
downloadplan9front-033c2812c29b0e81e6c055b80e0334ba5ed1f871.tar.xz
Make 'g' grep recursively by default.
Diffstat (limited to 'rc')
-rwxr-xr-xrc/bin/g32
1 files changed, 19 insertions, 13 deletions
diff --git a/rc/bin/g b/rc/bin/g
index 69656dfcc..10468b3d2 100755
--- a/rc/bin/g
+++ b/rc/bin/g
@@ -1,23 +1,29 @@
#!/bin/rc
rfork e
-flags=()
-while(! ~ $#* 1 && ~ $1 -* && ! ~ $1 --){
- flags=($flags $1);
- shift
+nl='
+'
+flags=()
+recurse=()
+while(! ~ $#* 1 && ~ $1 -* && ! ~ $1 --){
+ if(~ $1 '-n')
+ recurse=-n1
+ if not
+ flags=($flags $1);
+ shift
}
if(~ $1 --)
- shift
+ shift
switch($#*){
case 0
- echo 'usage: g [flags] pattern [files]' >[1=2]
- exit usage
+ echo 'usage: g [flags] pattern [files]' >[1=2]
+ exit usage
case 1
- pattern=$1
- files=(`{ls *.[bcChlmsy] *.asm *.awk *.cc *.cgi *.cpp *.cs *.go *.goc *.java *.lx *.ms *.pl *.py *.rc *.tex *.xy >[2]/dev/null})
+ pattern=$1
+ files=`$nl{walk -f $recurse | grep '\.([bcChlmsy]|asm|awk|cc|cgi|cpp|cs|go|goc|java|lx|ms|pl|py|rc|tex|xy)$' >[2]/dev/null}
case *
- pattern=$1
- shift
- files=($*)
+ pattern=$1
+ shift
+ files=($*)
}
-grep -n $flags -- $pattern $files /dev/null
+grep -n $flags -- $pattern $files /dev/null \ No newline at end of file