Hello,

> if I want grep do the same thing recursively, I try to use "grep -r
> 'test' *.h" and it complains no *.h such file.
> Would anyone know how to use grep to search specific file recursively?
> appreciate your help,

You could use find and it's exec option. Or, you could also use find and xargs.

$ find . -type f -iname '*.h' -exec grep -H 'test' {} \;
or
$ find . -type f -iname '*.h' | xargs grep -H 'test'

Explanation:
find: the program that does the job :)
-type f: Check only for files. -type d will check for directories.
Similarly, you can search for pipes, char devices, etc.
-iname regex: case insensitive match regex. You can also invert the regex.
-exec grep -H 'test': for each found file, exec the command
{}: Replace this by the file that is found
\;: Escape the semicolon (so that it's understood by find, and not
your shell); which indicates the end of -exec command.

`xargs program-with-options' does something like this:

for each line in stdin:
  invoke program-with-options $line

Hope that helps,
Regards,
-- 
Vimal

--
To unsubscribe from this list: send an email with
"unsubscribe kernelnewbies" to [EMAIL PROTECTED]
Please read the FAQ at http://kernelnewbies.org/FAQ

Reply via email to