All pastes #708453 Raw Edit

Stuff

public text v1 · immutable
#708453 ·published 2007-09-23 21:08 UTC
rendered paste body
#!/usr/local/bin/perl
$filesfound=0;

$filesmodified=0;

#$dir = "/home/megabyte";
$dir = @ARGV[0];

$search = @ARGV[1];

opendir(DIR,$dir) or &dirnotfound($dir);

#$search = "Forgot your password?";

$countage = "0";


print "\nSearching for $search in $dir\n";
$starttime=time;

recursedir ($dir,$search);



sub recursedir($$)
{
  my($dir)  = shift @_;
  my($search) = shift @_;

  if(opendir(DIR, "$dir")) {
    for my $file(grep { !/^\./ } readdir DIR) {
      if(-d "$dir/$file") {
	recursedir ("$dir/$file",$search);
      }
      else{

	open(INF,"$dir/$file") or print "fail\n"; 
	@filecontent=<INF>; 
	#print("$file\n");

	close(INF); 

	
	
$found = 0;
		foreach $line (@filecontent) {
		    ++$countage;
		    

			if ($line =~ /$search/i	) { $found = 1; }

		}

	
	
if ($found == 1) {
    ++$filesfound;
    
	 print "$dir/$file\n"; 
	if ( chmod 0000,"$dir/$file") { print "CHMODDED to 0\n"; }
}




	}


      }
    
    closedir DIR;
  }

}


#Output result of search and replace to user

print "\nFinished searching for $search in dir: $dir @ ".(time-($starttime))." seconds.\n";

print "Number of file(s) containing search keyword(s): $filesfound\n";

print "Scanned $countage files.\n";



exit; #Exit



sub dirnotfound {print "Error: $_[0] directory not found."; exit;}