【发布时间】:2014-02-16 15:22:25
【问题描述】:
我有一个包含路径列表的文本文件。
例如 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);
}
【问题讨论】:
-
perl 中的
grep与 shell 命令grep(1)完全不同。它需要在第二个参数中使用 LIST。请参阅 perldoc,perldoc.perl.org/functions/grep.html -
听起来像是一个shell命令任务:
cat path.txt | while read -r file; do grep 'Total Output Is' "$file/report.txt"; done > output.txt