使用方法,先任意命名,例如 search.plx,贴入下面的代码,授予执行权限.
$ search.plx "字符串" 目录名/文件
可以指定多个目录或者是文件名。
代码如下,经过测试的:
#!/usr/bin/perl
#
##############################
#Author: jeremy
#Email: jiang313hua@gmail.com
###############################
use warnings;
use strict;
die "Usage: $0
my $strings = $ARGV[0];
my $para;
shift @ARGV;
foreach $para(@ARGV){
if ( -d $para){
search_dir($para);
}elsif ( -f $para) {
search_file($para);
}else{
print "Don't search.\n";
}
}
sub search_file {
my $flname = shift;
open FL, "$flname" or die "Can't open the file: $!";
my $line = 1;
while (
if ($_ =~ /$strings/){
print "FILENAME: $flname contains strings($strings) in the $line lines!\n";
}
$line += 1;
}
close(FL);
}
sub search_dir {
my $dirs=shift;
my $flname;
opendir DH, "$dirs" or die "Couldn't open the directory -- $dirs: $!";
my @arry = readdir(DH);
foreach $flname (@arry){
next if "$flname" eq "." or "$flname" eq "..";
if ( -f "$dirs/$flname" ) {
open FL,"$dirs/$flname";
my $line = 1;
while (
if ($_ =~ /$strings/){
print "FILENAME: $dirs/$flname contain strings ($strings) in the $line lines!\n";
}
$line += 1;
}
close(FL);
}
if ( -d "$dirs/$flname" ) {
my $dir = "$dirs" . "/$flname";
search_dir($dir);
}
}
closedir(DH);
}

No comments:
Post a Comment