Perl:遍历目录并从文件中获取模式

时间:2015-02-10 02:35:34

标签: regex perl sorting subdirectory

我是Perl的新手。我必须完成一项任务。我被给了一个目录,在该目录中有130个子目录。从这些目录有报告子目录和报告,有一个.txt文件,我想从该文件中获取模式。

同样,我必须为所有人做这件事并获得模式。

任何人都可以帮助您提供示例代码或如何操作吗?

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:2)

从这开始:

#!/bin/env perl
use strict; use warnings;

my ($dir) = @ARGV;
$dir // die "No dir supplied";

die "Dir not found: $dir" unless (-e $dir);
die "Not a dir: $dir" unless (-d $dir);

my @files = <$dir/*/txtfile.txt>;

foreach my $file (@$files) {
    my $file_contents = undef;

    # read the patten from file..
    open (my $fh, '<', $file) or die "Can't open $file. $!";
    # Read the file contents here..
    {
        local $/ = undef;
        $file_contents = <$fh>;
    }
    close $fh;

    # Do something more
}

此方法称为文件通配。使用专门编写的模块有更好的方法,但这有点紧迫。它与将ls -l mydir/*/txtfile.txt输入终端窗口的方式相同。