grep $PATTERN * would be sufficient. By default, grep would skip all subdirectories. However, if you want to grep through them, grep -r $PATTERN * is the case.
grep $PATTERN *
grep -r $PATTERN *
In Linux, I normally use this command to recursively grep for a particular text within a directory:
grep
grep -rni "string" *
where
r
n
stdout
i
Use find. Seriously, it is the best way because then you can really see what files it's operating on:
find . -name "*.sql" -exec grep -H "slow" {} \;
Note, the -H is mac-specific, it shows the filename in the results.