#! /usr/bin/perl -w $i=@ARGV; if($i!=2 && $i!=1){ die("Wrong usage!\n"); exit(1); } process_files("."); sub process_files{ my $line; my $file; my @files; opendir(CWD,"$_[0]") or die("Can't open the current dir!\n"); chdir("$_[0]"); @files=readdir CWD; foreach $file(@files){ if($file eq "." || $file eq ".."){ next; } if(-T $file){ open(RF,"+<$file") or die("Can't open file: $file!\n"); $j=1; if($i==1){ while ($line=) { if(index($line,$ARGV[0])>=0){ print "$file: $j: $line\n"; } $j++; } } if($i==2){ while($line=){ if(($r=index($line,$ARGV[0]))>=0){ substr($line,$r,length($ARGV[0]))=$ARGV[1]; print RF $line; print "$file: $j: $line\n"; } $j++; } } close(RF); } if(-d $file){ process_files($file);#recursion } } chdir(".."); closedir(CWD); }