File::Find
#!/usr/bin/perl -w
use strict;
use File::Find;
my $path = $ARGV[0]; #搜索的路径
my $name=$ARGV[1]; #搜索的文件名正则
my $exp=$ARGV[2]; #要查找的内容正则
my $rep=$ARGV[3]; #要替换成什么内容
find( \&wanted, $path );
sub wanted {
if (! -d $File::Find::name){
if ( $File::Find::name =~ /$name/ ) {
my $qx="perl -p -i.bak -w -e 's/$exp/$rep/g' $File::Find::name";
print "$qx\n"
}
}
}
[root@mail lcx]# ./p.pl /lcx \.txt$ '\s+\d.+$' ''
perl -p -i.bak -w -e 's/\s+\d.+$//g' /lcx/a/a.txt
perl -p -i.bak -w -e 's/\s+\d.+$//g' /lcx/a/b/xxx.txt
http://search.cpan.org/~jesse/perl-5.12.0/lib/File/Find.pm

浙公网安备 33010602011771号