perl에서 두 개의 tage 사이에 줄 바꾸기에 도움이 필요합니다.perl의 두 태그 사이의 줄을 수정하십시오.
some lines
some lines
tag1
ABC somelines
NOP
NOP
ABC somelines
NOP
NOP
ABC somelines
tag2
당신이 볼 수 있듯이, 나는 두 개의 태그 tag1로하고이 tag2이 기본적으로, 나는이 tag1 사이 NOP와 ABC의 모든 인스턴스를 대체 할 : 나는 두 태그 사이에 줄을 수정하고자하는 파일을 및 tag2. 다음은 코드의 관련 부분이지만 대체하지는 않습니다. 누구든지 도와주세요 ..? 범위 연산자 파일을 편집하는 다른 방법에 대한 ..
use strict;
use warnings;
local $^I = '.bak';
local @ARGV = $cur_file;
while (<>) {
if (/^tag1/ .. /^tag2/) {
s/ABC/NOP/;
}
print;
}
unlink "$cur_file$^I"; #delete backup;
와 함께
my $fh;
my $cur_file = "file_name";
my @lines =();
open($fh, '<', "$cur_file") or die "Can't open the file for reading $!";
print "Before while\n";
while(<$fh>)
{
print "inside while\n";
my $line = $_;
if($line =~ /^tag1/)
{
print "inside range check\n";
$line = s/ABC/NOP/;
push(@lines, $line);
}
else
{
push(@lines, $line);
}
}
close($fh);
open ($fh, '>', "$cur_file") or die "Can't open file for wrinting\n";
print $fh @lines;
close($fh);