If you need to find a string in a file, you would typically use:
grep -H "string to find" filename.ext
However, grep doesn’t handle a large number of files well. If you specify grep "string" * or even grep "string" `find ./`you may find yourself facing this error:
bash: /bin/grep: Argument list too long
If you need to search for a string in a lot of files then you can use a simple bash script to do the searching for you.

In this sample, I am looking for a string “sample string” in a directory named “./sample/”:
for i in `find ./sample/`; do grep -H "sample string" $i; done
This uses the find command to do the searching. It actually returns a list of filenames, which we can then grep one-by-one. The -H option tells grep to let us know the filename it found the string in so we can go right into that file to find the location of it.

You May Also Like

New Post on MakeUseOf: Ditch Your Cable Company With Free, Legal Alternatives

I started writing for MakeUseOf, which is a blog for web application…

Free ISO Ripping Application for XP

I was looking for some software to save (rip) an ISO file…

My Thoughts on the iPhone 4 on Verizon

The Verizon iPhone is a win for consumers all around. The competition…

Facebook or Twitter Redirecting to Myspace or Other Websites

Came across this admittedly weird issue. Randomly over the past few months,…