2013-06-14 2 views
-1

80 줄이 들어있는 test.txt 파일이 있습니다. 펄 스크립트에서 나는 예를 들어 60 행을 다른 행으로 대체하려고합니다.Perl 스크립트를 사용하여 파일의 특정 줄을 바꾸는 방법

#!/var/www/cgi-bin/rootperl -w 
my $path="/var/www/cgi-bin/test.txt"; 
open(FICH,">>",$path) || die("Ouverture impossible"); 
my @input = readline(); 
chomp(@input); 
print FICH "@input[0]\n"; 
print FICH "@input[1]\n"; 
print FICH "@input[2]\n"; 
내가 @input[0]에 의해 특정 라인 (예를 들어 라인 60)를 대체 할 수있는 방법

? 예

@input[0] = "abcd"; 

그리고 라인 (60)은 나는

+2

당신은 내가 알고있다 희망, 당신이'test.txt'에서 읽지 않는다면, 당신은 그것을 추가하고 있습니다. 그리고 STDIN에서'@ input'으로 줄을 읽는 중입니다. – TLP

답변

0

"abcd" 그냥 할 수 할 "SSID=test"이었다

$input[59] = $input[0]; 

입력 파일을 읽은 후 출력 파일에 쓰기 전에.

참고 :이 시도

use strict; 
use warnings; 

my @input = readline(); 

my $file = 'path/to/file.txt'; 
open my $fh, '<', $file or die "unable to open '$file' for reading: $!"; 
my @lines = <$fh>; 

$lines[59] = $input[0] 
open my $fh, '>', $file or die "unable to open '$file' for writing: $!"; 
print $fh @lines; 
+0

입력은 세 변수를 포함하는 테이블입니다! 나는 첫 번째 변수 $ input [0]을 파일에 쓰고 싶습니다. "test.txt"를 60 행에 열었습니다. 희망이었습니다. – user2478348

+0

@ user2478348 당신의 질문은 매우 불분명합니다. 문제는 아마도 매우 간단 할 것입니다. 그러나 당신이 말하는 방식으로 그것은 당신이 의미하는 것을 이해하는 것을 거의 불가능하게 만듭니다. – TLP

+0

@ user2478348 : 내 편집 참조. – Toto

0

: 배열의 요소에 액세스하는 방법은 $input[n]하지

@input[n]이있는 시도를 가지고있다

perl -i -pe 'if ($. == 60) { print whatever;}' filea.txt 
관련 문제