I'm a linux newbie. I need to search for a string "teststring" in all *.java files coming under /home/user1/ (including subfolders). How can I do it in linux via shell command.

link|improve this question

76% accept rate
There have been several questions regarding regex searching files in subdirectories from the command-line – aking1012 Nov 28 '10 at 15:12
a quick search turned up this question: superuser.com/questions/208271/… not exactly what you are looking for, but instead of exec cp you could cat/grep whatever – aking1012 Nov 28 '10 at 15:16
I can list the file having the extension with find /home/user1 -name *.java How to use grep on that? – darthvader Nov 28 '10 at 15:23
@aking1012 thanks for guiding. – darthvader Nov 28 '10 at 15:28
feedback

5 Answers

up vote 8 down vote accepted

The easiest way is to use GNU grep's features:

grep -r --include '*.java' teststring /home/user1

If you're ever on another unix variant that doesn't have GNU grep, here's a portable way:

find /home/user1 -name '*.java' -exec grep teststring {} +
link|improve this answer
nice didn't know about this grep feature – aking1012 Nov 28 '10 at 15:52
feedback

using ack you just type: cd /home/user01 && ack --java teststring

link|improve this answer
or ack --java teststring /home/user01 – Andy Lester Dec 1 '10 at 3:43
feedback

For this ack aka ack-grep its the killer app in my mind ;)

You can ack some_string /in/path_y to find some_string in path_y Or simpler ack some_other_string to find some_other_sting in current dir.

link|improve this answer
feedback

Found it. Posting it as it might help someone.

find /home/user01 -name *.java | xargs grep "teststring"

Please correct if there is any better way.

link|improve this answer
3  
Generally, you should use -print0 and -0 when piping find into xargs to work properly with files that may have spaces or newlines in their names: find /home/user01 -name *.java -print0 | xargs -0 grep "teststring" – Dennis Williamson Nov 28 '10 at 15:38
feedback
grep -irl teststring *java
link|improve this answer
feedback

Your Answer

 
or
required, but never shown

Not the answer you're looking for? Browse other questions tagged or ask your own question.