Perl处理文件夹里面多个文件以及子文件夹里面多个文件的问题

要把/home/a这个文件夹里的*.sp文件,/home/a/...所有子文件夹里面的*.sp文件,以及/home/a/的子文件夹里面的子文件夹的*.sp文件全要进行处理... 要把/home/a这个文件夹里的*.sp文件, /home/a/...所有子文件夹里面的*.sp文件,以及/home/a/的子文件夹里面的子文件夹的*.sp文件全要进行处理 的perl代码怎么写啊 展开
 我来答
chind0502
推荐于2016-08-12 · TA获得超过275个赞
知道小有建树答主
回答量:182
采纳率:0%
帮助的人:79.8万
展开全部
这个其实挺简单的,给你写几句比较通俗的希望对你有所帮助啊;

my @pathlist='find /home/a/ -name "*.sp"';
#这是执行linux命令行中的命令,把/home/a/ 路径下所有的.sp文件都检索出来,放到@pathlist数组里。
foreach my $fsp (@pathlist) {
#想要的文件出理。
open(OUT,“〈",$fsp);
}
maosong327
2012-07-18 · 超过52用户采纳过TA的回答
知道小有建树答主
回答量:118
采纳率:100%
帮助的人:105万
展开全部
使用File::Find模块吧,很简单方便。

#!/usr/bin/perl -w
use strict;
use File::Find;
sub wanted{
if(/\.sp$/){
print $File::Find::name;#输出路径跟文件名
#你要进行的操作
}
}

find \&wanted,'/home/a';
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
ifnotyou
推荐于2016-10-10 · TA获得超过554个赞
知道小有建树答主
回答量:482
采纳率:50%
帮助的人:307万
展开全部
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("目录名");

以上子程序获取目录下所有的文件(含子目录),你可以针对性的处理

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友d580670
2012-07-17 · TA获得超过1983个赞
知道大有可为答主
回答量:2054
采纳率:82%
帮助的人:701万
展开全部
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);
}
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式