如何使用Perl脚本在目录中搜索以pattern结尾的文件

时间:2015-06-26 14:19:40

标签: perl

我必须在文件夹中搜索以变量&#34; $ runVar&#34; .csv结尾的特定csv文件。这应该是模式:anything <runVar>.csv。我必须附上此搜索的输出并将其邮寄。 请帮忙。我尝试使用mutt在shell中使用示例文件邮件。请确认它也可以在perl中使用吗?

2 个答案:

答案 0 :(得分:0)

如果我理解正确,您希望查找名称为“任何$ runVar.csv”的文件,然后对该文件执行某些操作。这是一个如何做到这一点的例子。如果找到文件,它将打开它并打印内容。

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

my $run_var = 1822;

my $rx = qr/(?<!\d)$run_var\.csv/;

my $dir = ".";

opendir my $dh, $dir or die $!;

while (my $file = readdir($dh)){

    if ($file =~ $rx){
        open my $fh, '<', $file
          or die $!;

        for my $line (<$fh>){
            chomp $line;
            print "$line\n";
        }
    }
}

答案 1 :(得分:0)

请不要在Perl词法标识符中加入大写字母。 $run_var更易读,特别是对于第一语言不是英语的人

使用glob

可以轻松完成此操作
my @matches = glob "*$run_var.csv";

您必须将要搜索的目录添加到模式字符串的开头,或者在调用chdir

之前可以glob