Beefy Boxes and Bandwidth Generously Provided by pair Networks
Perl Monk, Perl Meditation

dgrep - Wrapper around gnu find & grep

by domm (Chaplain)
on Jul 22, 2002 at 20:10 UTC ( #184215=sourcecode: print w/ replies, xml ) Need Help??

Category: Utility Scripts
Author/Contact Info Thomas Klausner domm AT
Description: I just cannot remember how to run find and grep together. After reading the FM once too often, I wrote this small wrapper..

Pass it a pseudo-regex (to match the files) and another one to look for in all files.

% dgrep .pm foo Will look for "foo" in all files ending in ".pm" in the current and lower directories.

Edited: ~Tue Jul 23 15:24:49 2002 (GMT), by footpad:
Added <code> tags to the code.

#!/usr/bin/perl -w
my ($findin,$grepfor)=@ARGV;
my $in=qq(find -name '*$findin' -exec grep -Hn '$grepfor' {} \\;);
print `$in`;

Comment on dgrep - Wrapper around gnu find & grep
Download Code
Replies are listed 'Best First'.
Re: dgrep - Wrapper around gnu find & grep
by jmcnamara (Monsignor) on Jul 22, 2002 at 21:08 UTC

    I usually do something like this:     find . -name \*.pm | xargs grep foo

    With egrep or grep -E as necessary. With gnu find the . isn't required. And with gnu grep you can also do the following (crude) recursive grep:     grep -rs foo *

    There are probably other ways as well.


      Lest filenames with spaces, newlines or other funky bits in them trip you, you might want to get into the habit of coupling find and xargs with their respective nullbyte-termination parameters (see manpages): find . -name \*.pm -print0 | xargs -0 grep foo
      Makeshifts last the longest.
      Ah, this

      find . -name \*.pm | xargs grep foo

      is definitly nicer than what I was using.


      (But I think I'll still use my wrapper...)

      -- #!/usr/bin/perl for(ref bless{},just'another'perl'hacker){s-:+-$"-g&&print$_.$/}

Back to Code Catacombs

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: sourcecode [id://184215]
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others lurking in the Monastery: (7)
As of 2015-11-26 07:07 GMT
Find Nodes?
    Voting Booth?

    What would be the most significant thing to happen if a rope (or wire) tied the Earth and the Moon together?

    Results (696 votes), past polls