Liam Delahunty: Home Tips Web Contact
Recommended laptop
under £500
.

Think I deserve a present? See my Amazon Wish List

Linux - Find string in files.

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

Share this!