25

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.

5 Answers5

27

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 {} +
5

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

Benoit
  • 7,113
5

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.

zzeroo
  • 528
3

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.

1
grep -irl teststring *java
Unni
  • 215