jadelennox: Demonic Tutor, Jadelennox: my Magic card (demonic tutor)
jadelennox ([personal profile] jadelennox) wrote in [community profile] command_liners2013-06-07 03:02 pm

finding a string in a directory

Little trick I do all the time when I'm looking for a string in a source tree:

find . -type f -exec egrep -H "string I'm seeking" {} \;

The things that vary:

find 
     base command, doesn't change
. 
     the top directory you're seeking in.  Could put a relative or absolute path here.
-type f 
     Narrowing down the kind of files you're seeking, in this case to regular files. 
     You could narrow it down in other ways, e.g. -name "*.c"
-exec egrep -H "string I'm seeking" {} \;
     the grep command in question. 
     The only thing I have a very here is the egrep switch (and the string).
     -H lists filename and the match
     -l just lists the filename; less informative but cleaner.
     {} \; is necessary syntax for the exec argument to find.
doldonius: (Default)

[personal profile] doldonius 2013-06-07 09:28 pm (UTC)(link)
Wouldn't egrep -r "target string" * do the same thing?
pauamma: Cartooney crab wearing hot pink and acid green facemask holding drink with straw (Default)

[personal profile] pauamma 2013-06-11 09:15 am (UTC)(link)
Other commands you may want to look at: hg grep (or git grep) and my favorite: less `grep -rl string dir` (to display all files that contain string, using less)