find . | xargs grep 'string' -sl
The -s is for summary and won't display warning messages such as
grep: ./directory-name: Is a directory
The -l is for list, so we get just the filename and not all instances of the match displayed in the results.
Performing the search on the current directory I get:
./javascript_open_new_window_form.php ./excel_large_number_error.php ./linux_vi_string_substitution.php ./email_reformat.php ./online_email_reformat.php ./excel_find_question_mark.php ./linux_find_string_in_files.php ./excel_keyboard_shortcuts.php ./linux_grep.php ./md5_unique_sub_string.php ./email_reformat_token.php ./excel_password_protect.php ./mysql_date_calulation.php ./md5_string.php ./php_javascript_passing_values_to_new_window_in_url.php ./php_math_on_string/math_on_string_form.php ./guide.php ./excel_large_number_paste.php ./piping_commands_find_grep_sed.php ./google-search-for-seo-research.php ./filename_conversion_form.php ./linux_find_string_files.php
I find this useful for just quickly seeing which files contain a search time. I would normally limit the files searched with a command such as :
find . -iname '*php' | xargs grep 'string' -sl
Another common search for me, is to just look at the recently updated files:
find . -iname '*php' -mtime -1 | xargs grep 'string' -sl
would find only files edited today, whilst the following finds the files older than today:
find . -iname '*php' -mtime +1 | xargs grep 'string' -sl
REFERENCES
http://www.liamdelahunty.com/tips/linux_find_string_files.php
http://shebangme.blogspot.com/2009/08/to-find-word-in-file.html