2014-02-15 1 views
1

나는 경로 목록이 들어있는 텍스트 파일을 가지고 있습니다.
예컨대 path.txt Perl을 사용하여 파일에서 키워드를 찾고 텍스트 파일로 출력

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

그리고 모든 경로에서이 REPORT.TXT라는 파일이 포함

. 나는 perl 프로그램을 작성하여 path.txt 파일을 한 줄씩 읽고 경로로 내려 가서 grep로 report.txt 파일을 작성한다.
grep 함수를 사용하여 파일에서 키워드를 잡아야합니다.
그런 다음 결과를 다른 텍스트 파일로 추출합니다.

나는 perl 프로그램을 작성하려했지만 제대로 작동하지 않는 것 같습니다. 프로그래밍에 익숙하지 않아서 용서해주십시오. bash 오래된 단순하고 간단 일반을 사용하지 왜

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); 
} 
+0

'펄에 grep'는 쉘 명령 전혀 다른'그렙 (1)'. 두 번째 인수에는 LIST가 필요합니다. perldoc, http://perldoc.perl.org/functions/grep.html – ernix

+0

을보고 쉘 명령 태스크처럼 들린다.'cat path.txt | 읽는 동안 -r file; grep '총 출력은' "$ file/report.txt"입니다. 완료> output.txt' – ernix

답변

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); 
0

:

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