2013-07-01 3 views
0

다음과 같은 파일이 있는데,이 줄을 검색하려면 test name=""을 입력하고 첫 번째 행을 포함하여 다음 4 줄을 삭제하십시오. .perl에서 특정 줄을 삭제하는 방법은 무엇입니까?

<test name="FT S_CREATE_DELETE_JOB"> 
<class name="11 .98. FT S_CREATE_DELETE_JOB"> 
COMPLETED 
<test name=""> 
<class name="11.98."> 
</class> 
</test> 
+0

"이 줄"은 무엇입니까? 또한 perl에는 여러 가지 방법이 있지만 코드 조각을 찾으려면 아직 Google을 사용해 보셨습니까? – steabert

+7

XML 파서를 사용 해본 적이 있습니까? – TLP

+0

이 줄 -> user1954970

답변

2

대부분의 언어에서 파일을 직접 조작하지 않습니다. 대신, 두 번째 파일을 열이 결과를 작성한 다음 첫 번째와 두 번째 파일 이름을 변경하고 원본을 삭제 :

use strict; 
use warnings; 
use autodie; 

open my $input_fh, "<", "input.txt"; 
open my $output_fh, ">", "output.txt"; 
while (my $line = <$input_fh>) { 
    chomp; 
    last if $line eq '<test name="">'; 
    print {$output_fh} "$line\n"; 
} 
close $input_fh; 
close $output_fh; 
unlink "input.txt"; 
rename "output.txt", "input.txt"; 

이것은 아주 기본적인 것들입니다, 그래서 당신은 펄을 모르는 생각한다. 어쩌면 그것은 learn it에 시간이다.

관련 문제