Beefy Boxes and Bandwidth Generously Provided by pair Networks
There's more than one way to do things

Re: traverse directory recursively and search for pattern

by kielstirling (Scribe)
on Mar 20, 2013 at 04:28 UTC ( #1024430=note: print w/replies, xml ) Need Help??

in reply to traverse directory recursively and search for pattern

I do this like so. ;)
#!/usr/bin/perl use Modern::Perl; use autodie; my ($dir, $match) = @ARGV; die "directory does not exists $dir" unless -d $dir; die "No match" unless $match; open_readdir($dir, \&process); sub process { my ($dir, $file) = @_; if (-T "$dir/$file") { open my $fh, '<', "$dir/$file"; say "$dir/$file: $_" for grep /$match/, $fh->getlines; $fh->close; } } sub open_readdir { (my $dir = shift) =~ s/\/$//; my $code = shift; my $db; opendir $dh, $dir; my @files = grep !/^\./, readdir $dh; for my $file (@files) { if (-d "$dir/$file") { open_readdir("$dir/$file", \&process); } else { &$code($dir, $file); } } closedir($dh); }

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://1024430]
[Discipulus]: Tanktalus my comment was about how to fork & join in tk?
[marioroy]: Oh, I've might of missed Discipulus's earlier response. I had gone to bed.
[Tanktalus]: ah, I don't even have the perlmonks site open in my browser :)
Tanktalus is chatting through his cbstats application :)
[marioroy]: Perl is so much fun.
[Discipulus]: Tanktalus i recently started a Meditation about marioroy's MCE suit of modules, but is even better to see a practical question answered than responses to my meditation
[Discipulus]: good night mario!
[Tanktalus]: yeah, I saw you post about MCE - the concept looks really really cool. I wonder how well it plays with Coro :)
[Lady_Aleena]: Hi guys. I asked this earlier but got no answer. Why is this dying at -exec: my @music_times = qx(find ~/Music/Albums/ -type f -iname '*.mp3' -exec mp3info -p "%S\n" {} \;);
[Lady_Aleena]: The error find: missing argument to `-exec'

How do I use this? | Other CB clients
Other Users?
Others chilling in the Monastery: (5)
As of 2017-04-23 19:53 GMT
Find Nodes?
    Voting Booth?
    I'm a fool:

    Results (432 votes). Check out past polls.