[EMAIL PROTECTED] ([EMAIL PROTECTED]) wrote: > I need to be able > to use find and egrep to scan a directory which has more than 3000 files in > it.
find . -type f -print | xargs egrep pattern /dev/null Enrico Zini ([EMAIL PROTECTED]) wrote: > find <options> | xargs egrep "pattern" ... except that you've omitted /dev/null (see below). > find <options> | while read a; do egrep "pattern" $a; done > [...] > find <options> -exec egrep "pattern" {} \; These two have one major problem: egrep is only getting one filename, so it will not print that filename. Thus, you won't know which file matched the pattern. That's why the command I gave (with /dev/null) is best. It passes multiple files to egrep at a time (you're guaranteed to get at least one per call with xargs, so adding /dev/null gives you at least two filenames per call to egrep -- so egrep will always print out the name of the file which matches). Passing multiple files at a time to egrep is also more efficient -- the -exec version may be significantly slower. -- Greg Wooledge | Distributed.NET http://www.distributed.net/ [EMAIL PROTECTED] | because a CPU is a terrible thing to waste. http://www.kellnet.com/wooledge/ |
pgp3MIx9DGQar.pgp
Description: PGP signature