Copyright (C) 2000-2012 |
GNU Info (find.info)ContentsContents ======== To search for files based on their contents, you can use the `grep' program. For example, to find out which C source files in the current directory contain the string `thing', you can do: grep -l thing *.[ch] If you also want to search for the string in files in subdirectories, you can combine `grep' with `find' and `xargs', like this: find . -name '*.[ch]' | xargs grep -l thing The `-l' option causes `grep' to print only the names of files that contain the string, rather than the lines that contain it. The string argument (`thing') is actually a regular expression, so it can contain metacharacters. This method can be refined a little by using the `-r' option to make `xargs' not run `grep' if `find' produces no output, and using the `find' action `-print0' and the `xargs' option `-0' to avoid misinterpreting files whose names contain spaces: find . -name '*.[ch]' -print0 | xargs -r -0 grep -l thing For a fuller treatment of finding files whose contents match a pattern, see the manual page for `grep'. automatically generated by info2www version 1.2.2.9 |