#!/usr/local/bin/perl # # search for a file in all subdirectories # $file_ext = '.html'; @pattern_strings = ('and', 'speech', '\d'); # look in current directory $dir = "/cavs/hse/ies/www/"; chop($dir); &searchDirectory($dir); sub searchDirectory { local($dir); local(@lines_in_ls); local($line_in_ls); local(@lines_in_file); local($line_in_file); local($file); local($full_file_name); local($subdir); local($matched_patterns); $dir = $_[0]; # search this directory @lines_in_ls = `cd $dir; ls -l`; foreach $line_in_ls (@lines_in_ls) { if ($file =~ /$file_ext$/) { $full_file_name = $dir."/".$file; open(INFO, $full_file_name); # Open the file @lines_in_file = ; # Read it into an array $matched_patterns = 0; foreach $pattern_string (@pattern_strings) { foreach $line_in_file (@lines_in_file) { if ($line_in_file =~ /$pattern_string/) { $matched_patterns += 1; last; } } } close(INFO); if ($matched_patterns == 2) { print "$full_file_name\n"; } } } # search any sub directories @lines_in_ls = `cd $dir; ls -l`; foreach $line_in_ls (@lines_in_ls) { if($line_in_ls =~ /^d/) { $line_in_ls =~ /\s+(\S+)$/; $subdir = $dir."/".$1; &searchDirectory($subdir); } } }