http://qs1969.pair.com?node_id=729694


in reply to Re^2: How to search string in all files in directory
in thread How to search string in all files in directory

Most likely you have not installed File::Find::Rule Try this code without calling any modules
sub fullPathFileName #($StartDirectory,$RegularExpression) { #my ($StartDirectory,$WhildCardSearch)= @_; my ($StartDirectory,$RegularExpression)= @_; my(@A,$e,$C,@B,$a,@C,@Dir,$InputDir,@AllTestSuitefiles,@TestSuitef +iles,$p,@FullPath); #Purpose is to extract all paths to directories and subdirectories @A=`dir $StartDirectory /s/w ` ; foreach $e (@A) { $C=substr($e,0,10); #Extract only string that starts with Directory if($C eq " Directory") { push(@B,$e); } } # Directory of C:\cr1_qc\crnqcV3\CM\Bering\Results\object_test_ +mssql\Root\DirectorySuite\GroupsandRolesSuite\OutputPages # I want to start from C: foreach $a (@B) { push(@C,substr($a,14)); } #Remove lash char that is whitespace @Dir=trim(@C); foreach $InputDir (@Dir) { opendir(ODH,"$InputDir")|| die "Can't open dir\n"; @AllTestSuitefiles=readdir(ODH); # @TestSuitefiles=glob("$WhildCardSearch"); closedir(ODH); # Find all files @TestSuitefiles=grep(m/$RegularExpression/,@AllTestSuitefiles) +; foreach $p (@TestSuitefiles) { push(@FullPath,"$InputDir\\$p"); } } return @FullPath; }#fullPathFileName $LocationOfTheStartDir='C:\chat'; $SearchExp='*.htm'; @AllFilePaths=fullPathToFile($LocationOfTheStartDir,$SearchExp); foreach $InputFile (@AllFilePaths){ @AllLinesFromTheFile = `type $InputFile`; foreach $line (@AllLinesFromTheFile){ if ($line=~/DesiredString/){ print "$line"; } } @AllLinesFromTheFile=(); }
(: Life is short enjoy it :)