文件搜索在Windows上的文件夹中递归

时间:2013-05-21 07:26:03

标签: perl

尝试编写一个脚本,一旦找到这些文件就会在文件夹中搜索两个文件,然后它必须对另一个文件执行某些操作:

我正在为此脚本使用Windows。

以下是文件夹的层次结构:

                      Logs
                     / | \  
                 abc   def   xyz
                 / \   / \     /\
               ANR etc ANR etc ANR etc

等=文本文件。

我要做的是:

我想检查ANR文件夹是否存在两个文件(pqr.txt和rst.txt),如果那些文件在那里然后对其进行操作,就像我必须读取一个特定的文本文件并搜索一些该特定文本文件中的关键字。

我如何接近:

#!/bin/usr/perl -w
use strict; 
use Cwd; 
use File::Find; 
my $dir ="C:\APTscripts\APStress\Logs";

find(\&file_operation,$dir);

$first_file = @ARGV[0];
$sec_file= @ARGV[1];

sub file_operation
{
    my $file = $_;
    if(($file =~ /teaces/) && ($file =~ /traces.txt.bugreport/))
    {
        Do some opeartion 
    }
}

但凭借这种逻辑,我无法做任何我想做的事情。任何身体都可以帮助我。

1 个答案:

答案 0 :(得分:1)

这个根据您的描述检查父文件夹:

sub file_operation {
    my $file = File::Spec->rel2abs($_);
    if(($file =~ /traces/) && ($file =~ /traces.txt.bugreport/)) {
        my ($parent) = ($file =~ m!(.*)/!);
        if (-f "$parent/ANR/pqr.txt" or -f "$parent/ANR/rst.txt") {
            print "Do some opeartion: $file $parent\n";
        }   
    }   
}