Published in: Bash
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:
./javascriptopennewwindowform.php ./excellargenumbererror.php ./linuxvistringsubstitution.php ./emailreformat.php ./onlineemailreformat.php ./excelfindquestionmark.php ./linuxfindstringinfiles.php ./excelkeyboardshortcuts.php ./linuxgrep.php ./md5uniquesubstring.php ./emailreformattoken.php ./excelpasswordprotect.php ./mysqldatecalulation.php ./md5string.php ./phpjavascriptpassingvaluestonewwindowinurl.php ./phpmathonstring/mathonstringform.php ./guide.php ./excellargenumberpaste.php ./pipingcommandsfindgrepsed.php ./google-search-for-seo-research.php ./filenameconversionform.php ./linuxfindstring_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
find . | xargs grep 'string' -sl // or alternatively find ./ -exec grep -Hn "YourString" {} \;
Comments
Subscribe to comments
You need to login to post a comment.
I got errors when using this, specifically: "xargs: unmatched single quote;"
This command was successful where the above was not:
find -type f -printf '"%p"\n' | xargs grep -sl "string"