从目录

时间:2015-08-26 02:51:36

标签: perl

这是我在perl的第一个程序。 我有超过1000个文件,我想从文件中提取特定数据。所有文件的结构都是一样的。 打开每个文件然后复制特定数据真的很难,

如何使用perl实现此目的。

结构看起来像这样。

    LensMode=Normal
    MicronMarker=500
    DataDisplayCombine=1
    Voltage=0 Volt
    PixelSize=1.586612

我想从每个文件中提取MicronMarker和PixelSize。 我们赞赏任何正确方向的帮助。

位置为D:\ Files \ Folder1

1 个答案:

答案 0 :(得分:2)

试试这个

使用glob阅读目录

while (my $files = glob(" D:\Files\Folder1\*"))
{
    open my $handler,"<","$files";
    my @extract = grep{ m/^(MicronMarker|PixelSize)/g} <$handler>;  
    print @extract;
}

使用while loop opendir提取文件中的单词。

opendir(my $dir, " D:\Files\Folder1");

while (my $ech = readdir($dir))
{
    open my $handler,"<","test/$ech";
    while(my $l = <$handler>)
    {
        if($l =~m/^(?:MicronMarker|PixelSize)/g)
        {
            print "$l";

        }

    }
    close ($handler);
}

这是使用grep

从文件中提取单词的简便方法
while (my $ech = readdir($dir))
{
    open my $handler,"<","test/$ech";
    my @extract = grep{ m/^(MicronMarker|PixelSize)/g} <$handler>;
    print @extract;
    close($handler);
}