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

  • 相关阅读:
    【Python_PyQtGraph 学习笔记(八)】基于PyQtGraph将X轴坐标设置为系统时间
    vue2和vue3的声明周期
    《Mybatis 手撸专栏》第9章:细化XML语句构建器,完善静态SQL解析
    MySQL面试题经典40问!(全)
    如何用jenkins插件Allure生成自动化测试报告,3分钟看完即会
    Wayland introduce
    从原理到实践 | Pytorch tensor 张量花式操作
    对原数组有影响的几个方法
    java计算机毕业设计在线影视系统源程序+mysql+系统+lw文档+远程调试
    想转行学软件测试担心哪些问题?
  • 原文地址:https://blog.csdn.net/vempire/article/details/128077426