您的位置:首页 > 其它

perl 把源目录下的文件拷贝到目标目录(带路径)

2014-11-13 17:58 1061 查看
#!/bin/perl

#perl "D:\separateFliesBySearch.pl" "D:/WebRoot" "C:/Users/Documents/" ".xml" "<beans xmlns=\"http:\/\/www\.springframework\.org\/schema\/beans\""

use strict;

use warnings;

use File::Find;

use File::Copy;

use File::Path;

die "使用的参数:$0,不符合要求,请指定目录及搜索内容" unless @ARGV>=4;

my $srcdir = $ARGV[0];

my $distdir = $ARGV[1];

my $suffix = $ARGV[2];

my $reg = $ARGV[3];

my $verbose = 0;

if($ARGV[4])

{

 $verbose = $ARGV[4];

}

searchContentsInFiles($srcdir,$suffix,$reg);

sub searchContentsInFiles

{

 my $srcdir=$_[0];

 my $suffix=$_[1];

 

 if(! -e $distdir)

 {

  #第二个参数为是否显示日志,第三个目录权限

  mkpath($distdir,$verbose,0711);

 }

 my @filenames=find( \&wanted,$srcdir);

 

 close FH;

}

sub wanted

{

 my $file = $File::Find::name;

 my $filename=$_;

 my $filedir=$File::Find::dir;

 if(-f $file && /$suffix/ && !/\.svn/)

 {

  open(FH,"$file");

  if(grep {/$reg/} <FH>)

  {

   #$_="$filedir";

   my $tmpfiledir=$filedir;

   $tmpfiledir=~ s/$srcdir//;

   my $tmpdistdir="$distdir$tmpfiledir";

   #print "$tmpdistdir\n";

   if(!-e "$tmpdistdir")

   {

    #第二个参数为是否显示日志,第三个目录权限

    mkpath("$tmpdistdir",$verbose,0711);

   }

   copy($file,"$tmpdistdir");

  }

 }

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: