Perl-->文件的操作
创始人
2024-02-22 08:54:28
0

1,从一个文件的完全路径中找出它的文件名

#!/usr/bin/perl -w

use File::Basename;
$path = "/home/sysadmin/test/aaa.txt.html";
$basename = basename($path, ".html");
print $basename . "\n";


我们只需要把文件的完全路径,还有要剔除的扩展名传给它,如果没有第二个参数,就取出完整文件名。



2,对目录进行递归搜索


#!/usr/bin/perl -w

use File::Find;

$path = '/home/sysadmin/test';

find(\&handleFind, $path);

sub handleFind {
    my $foundFile = $File::Find::name;
    print "$foundFile\n" if ($foundFile =~ /\.html?$/i);
}




3,一次读入整个文件内容。


#!/usr/bin/perl -w

$path = '/home/sysadmin/test/aaa.txt.html';
open FH, "< $path";
$/ = undef;
$slurp = ;
print $slurp;


打开文件的另外一种方法:


#!/usr/bin/perl

use warnings;

$file = '/etc/passwd';

open PASSWD, "< $file"
 or die "How did you get logged in? ($!)";

while(){
     print $_;
}



4,删除某个目录下的特征文件


#!/usr/bin/perl -w

use File::Find;

$path = '/home/sysadmin/test';

find(\&wanted, $path);

sub wanted {  
      if (-f $File::Find::name)  
             {  
               if ($File::Find::name=~/\.cvs$/i or $File::Find::name=~/\.jpg$/i)
                   {  
                      print "Removing $File::Find::name\n";  
                             unlink   $File::Find::name;  
                    }  
              }  
}




5,复制文件或者目录


#!/usr/bin/perl

use warnings;

use File::Copy;

$source = '/etc/passwd';
$target = '/usr/local/src';
 
copy( "$source", "$target" ) or die "Copy failed: $!";


另外一种方法:

#!/usr/bin/perl

use warnings;

$source = "/home/jive/";
$target = "/usr/local/src";

system("cp -rdp $source $target");



5,移动文件


#!/usr/bin/perl

use warnings;

use File::Copy;

$source = '/home/sysadmin/lvs';
$target = '/usr/local/src';

move( "$source", "$target" ) or die "Copy failed: $!";



6,找出指定目录下的文件和目录


$dir = "/home/sysadmin/aa";

opendir(DIR,"$dir") or die "Can't open the current directory: $!\n";

@names = readdir(DIR) or die "Unable to read current dir:$!\n";

closedir(DIR);

foreach $name (@names) {
    next if ( $name =~ /^\./ );
    if ( -d $name ) {
        print "found $dir directory: $name\n";
        next;
    }
    else {
        print "found $dir file: $name\n";
    }
}

相关内容

热门资讯

掘出尘烟深处的人性   ▌汪泉《青烟》杜万青 著 作家出版社  一缕青烟从祁连山深处飘逸而出,那青烟的下面是晚清至民国时...
中信银行焕新发布“小天元”企业...   在数字经济成为国家核心竞争力的战略背景下,中央金融工作会议将“数字金融”列为“五篇大文章”核心要...
中粮资本涨2.98%,成交额1... 7月11日,中粮资本涨2.98%,成交额19.32亿元,换手率6.29%,总市值310.59亿元。异...
智慧农业涨0.31%,成交额1... 7月11日,智慧农业涨0.31%,成交额1.46亿元,换手率3.20%,总市值46.45亿元。异动分...
华星创业涨0.58%,成交额7... 7月11日,华星创业涨0.58%,成交额7994.56万元,换手率2.69%,总市值35.16亿元。...
星空卫视的海贼王 星空卫视的海贼王星空卫视的动漫现在还播放国语版的海贼王吗?? 我只知道现在就播放到380集 后面就没...
赛轮轮胎跌0.15%,成交额3... 7月11日,赛轮轮胎跌0.15%,成交额3.57亿元,换手率0.81%,总市值438.63亿元。异动...
安道麦A涨0.67%,成交额3... 7月11日,安道麦A涨0.67%,成交额3789.80万元,换手率0.23%,总市值174.97亿元...
金钼股份涨2.60%,成交额4... 7月11日,金钼股份涨2.60%,成交额4.50亿元,换手率1.22%,总市值368.80亿元。异动...
仙琚制药涨0.74%,成交额1... 7月11日,仙琚制药涨0.74%,成交额1.61亿元,换手率1.72%,总市值94.17亿元。异动分...