Return to Snippet

Revision: 13027
at January 15, 2010 12:30 by mattkenefick


Updated Code
find . | xargs grep 'string' -sl

// or alternatively

find ./ -exec grep -Hn "YourString" {} \;

Revision: 13026
at April 5, 2009 18:18 by mattkenefick


Initial Code
find . | xargs grep 'string' -sl

Initial URL

                                

Initial Description
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

Initial Title
Linux: Find in Files

Initial Tags
files, find

Initial Language
Bash