使用Perl从文件中查找关键字并输出到文本文件

时间:2014-02-15 16:19:50

标签: perl unix

我有一个包含路径列表的文本文件 例如path.txt

/project/results/ver1/  
/project/results/ver2/  
/project/results/ver1000/  

在每个路径中它都包含一个名为report.txt的文件。 我正在编写一个perl程序来逐行读取path.txt文件并下降到路径并grep文件report.txt。
我需要使用grep函数在文件中捕获关键字 然后我将我的结果提取到另一个文本文件。

我尝试编写perl程序,但它似乎不起作用。 请原谅我,因为我还是编程新手。

my $output = ("output.txt");
my $path = ("path.txt"); 
open (OUT,'>',$output) or die;  
open (PATH, '<',$path) or die;  
foreach (<PATH>){  
chomp;  
$path1 = $_;  
chdir ("$path1");  
my $ans = grep 'Total Output Is' , report.txt;  
print OUT "$ans\n";  
chdir($pwd);  
}  

2 个答案:

答案 0 :(得分:1)

my $output = "output.txt";
my $path = "path.txt"; 
open (OUT,  '>', $output) or die $!;  
open (PATH, '<', $path) or die $!;

while (my $path1 = <PATH>) {
  chomp $path1;

  open my $fh, "<", "$path1/report.txt" or die $!;  
  /Total Output Is/ and print OUT $_ while <$fh>;
  close($fh);
}

close(OUT);
close(PATH);

答案 1 :(得分:0)

为什么不使用简单明了的普通旧bash

while read path; do
    grep 'Total Output Is' "$path"/report.txt
done < path.txt > output.txt