Perl处理文件夹里面多个文件以及子文件夹里面多个文件的问题
要把/home/a这个文件夹里的*.sp文件,/home/a/...所有子文件夹里面的*.sp文件,以及/home/a/的子文件夹里面的子文件夹的*.sp文件全要进行处理...
要把/home/a这个文件夹里的*.sp文件, /home/a/...所有子文件夹里面的*.sp文件,以及/home/a/的子文件夹里面的子文件夹的*.sp文件全要进行处理 的perl代码怎么写啊
展开
4个回答
展开全部
使用File::Find模块吧,很简单方便。
#!/usr/bin/perl -w
use strict;
use File::Find;
sub wanted{
if(/\.sp$/){
print $File::Find::name;#输出路径跟文件名
#你要进行的操作
}
}
find \&wanted,'/home/a';
#!/usr/bin/perl -w
use strict;
use File::Find;
sub wanted{
if(/\.sp$/){
print $File::Find::name;#输出路径跟文件名
#你要进行的操作
}
}
find \&wanted,'/home/a';
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
sub gDirTree {
my $dir=shift;
my @gFile=();
if (!-d "$dir" && -e "$dir") {
push(@gFile,$dir);
return @gFile;
}
return if (!-d "$dir" || $dir =~ /\.$/);
my @files=grep {!(/^\./)} glob("$dir/*");
for my $nextname(@files ) {
if(-d "$nextname") {
push(@gFile,&gDirTree($nextname));
} else {
push(@gFile,$nextname);
}
}
return @gFile;
}
my @Files=&gDirTree("目录名");
以上子程序获取目录下所有的文件(含子目录),你可以针对性的处理
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
sub process
{
my $file =shift;
}
sub finddir{
my $dir=shift;
my $h;
opendir($h,$dir)||return;
my @cont=readdir($h);
for my $f($cont)
{
my $path=$dir .'\'.$f;
if(-d $path)
{
if($f ne '.' && $f ne '..'){finddir($path);}
}
else if ($f =~/\.sp$/)
{
process($path);
}
}
}
{
my $file =shift;
}
sub finddir{
my $dir=shift;
my $h;
opendir($h,$dir)||return;
my @cont=readdir($h);
for my $f($cont)
{
my $path=$dir .'\'.$f;
if(-d $path)
{
if($f ne '.' && $f ne '..'){finddir($path);}
}
else if ($f =~/\.sp$/)
{
process($path);
}
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询