9.11. Custom -exec Tests Applied
My favorite reason to use
find 's
-exec is for large recursive
greps. Let's say I want to search
through a large directory with lots of subdirectories to find all of
the .cc files that call the method
GetRaw( ):
% find . -name \*.cc -exec grep -n "GetRaw(" {} \; -print
58: string Database::GetRaw(const Name &owner) const {
67: string Database::GetRaw(const Name &owner,
./db/Database.cc
39: return new Object(owner, _database->GetRaw(owner));
51: string Object::GetRaw(const Property& property) const {
52: return _database->GetRaw(_owner, property);
86: Properties properties(_database->GetRaw(owner));
103: return _database->GetRaw(_owner);
./db/Object.cc
71: return new DatabaseObject(owner, GetDatabase( ).GetRaw(owner));
89: return Sexp::Parse(GetRaw(property));
92: SexpPtr parent = Sexp::Parse(GetRaw("_parent"))->Eval(this);
./tlisp/Object.cc
This output is from a real source directory
for an open source project I'm working on; it shows
me each line that matched my grep along with its
line number, followed by the name of the file where those lines were
found. Most versions of grep can search
recursively (using -R), but they search all files;
you need find to grep through
only certain files in a large directory tree.
--JP and DJPH
 |  |  | | 9.10. Using -exec to Create Custom Tests |  | 9.12. Finding Many Things with One Command |
Copyright © 2003 O'Reilly & Associates. All rights reserved.
|