我想要一个perl脚本,它将进入每个测试文件夹并解析其中的日志文件。
例如:
results/testcases/ **?** /test.log
上述路径必须使用**?**
标记处的不同测试文件夹名称进行动态更改。
我正在使用此results/testcases/@array/test.log
@array
有测试名称
答案 0 :(得分:0)
我的建议是:
my $path = "results/testcases";
opendir(TEMPDIR,$path) or die "err1";
my @dir = grep -d, readdir TEMPDIR;
foreach(@dir)
{
if( $_ !~ /\./ )
{
open( my $fileHandle , "results/testcases/".$_."/test.log" ) or die "err2";
# parsing log file
close $fileHandle or die "err2-2";
}
}
close TEMPDIR or die "err1-2";
首先,您需要读取文件夹“results / testcases”以获取当前正确的文件夹名称。其次,你需要逐个打开文件,而不是将@array放在路径的中间。第三,你应该阅读基本的perl,否则你将无法以适当的方式解析。第四,你真的应该阅读HOW TO ASK,你应该输入你的代码,以便我们可以提供更多帮助,你的问题也可以帮助其他人。
答案 1 :(得分:0)
如果您的测试文件夹相对路径存储在@array
中。您可以执行以下操作:
my @testlogs = grep { -e $_ } map { "results/testcases/".$_."/test.log" } @array;
新阵列@testlogs
现在包含现有' test.log'的路径列表。文件。
然后,您可以像这样解析每个文件:
map { ... parsing call ... } @testlogs;