• Perl-->文件的操作


    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";
        }
    }

  • 相关阅读:
    【25】c++设计模式——>责任链模式
    SSM教学网站毕业设计-附源码211611
    java培训课程之页面中获取国际化资源信息
    完整的 HTTPS 的通信
    【PyCharm Community Edition】:基础
    【NLP】AI相关比赛汇总(2022)
    SpringCloudAlibaba组件 — — OpenFeign的其他作用【超时时间、日志打印】
    上海亚商投顾:沪指冲高回落 纺织服装股午后集体走强
    论文阅读《2022ICLR:Are Message Passing Neural Networks Really Helpful for Knowledge Graph Completion? 》
    快乐数 | LeetCode-203 | 一个简单的数学题!| Floyd判圈算法练习题 | 哈希集合 | 数学
  • 原文地址:https://blog.csdn.net/vempire/article/details/128077426