これが可能かどうかはわかりませんが、そうであることを願っています。
ファイル backup.xml に次の行が 766 回あります。
*** Hosting Services
次に、list.txt
766行を含むファイルがあります。***
-の 766 行のそれぞれの内容に置き換える必要がありlist.txt
、可能であれば同じ順序にする必要があります。
助けてくれてありがとう!
これが可能かどうかはわかりませんが、そうであることを願っています。
ファイル backup.xml に次の行が 766 回あります。
*** Hosting Services
次に、list.txt
766行を含むファイルがあります。***
-の 766 行のそれぞれの内容に置き換える必要がありlist.txt
、可能であれば同じ順序にする必要があります。
助けてくれてありがとう!
考え:
loop over the lines of the B(ackup file)
if you (F)ind a B-line to change
read the next line of the L(ist file)
change
print the line to R(result file)
プラン:
read_open B
read_open L
write_open R
while (line from B)
if (F) {
read replacemment from L
change line
}
print line to R
}
close R, L, B
実装 I (read_open、ループ、B を参照):
use strict;
use warnings;
use English qw(-no_match_vars);
my $bfn = '../data/AA-backup-xml';
open my $bfh, '<', $bfn or die "Can't read open '$bfn': $OS_ERROR";
while (my $line = <$bfh>) {
print $line;
}
close $bfh or die "Can't read close '$bfn': $OS_ERROR";
出力:
perl 01.pl
whatever
whatever
*** Hosting Services
whatever
whatever
whatever
*** Hosting Services
whatever
whatever
*** Hosting Services
whatever
whatever
whatever
*** Hosting Services
実装 II (読み取り/書き込み、F、置換、最初の結果):
use Modern::Perl;
use English qw(-no_match_vars);
my $bfn = '../data/AA-backup-xml';
open my $bfh, '<', $bfn or die "Can't read open '$bfn': $OS_ERROR";
my $lfn = '../data/AA-list.txt';
open my $lfh, '<', $lfn or die "Can't read open '$lfn': $OS_ERROR";
my $rfn = '../data/AA-result';
open my $rfh, '>', $rfn or die "Can't write open 'rlfn': $OS_ERROR";
while (my $line = <$bfh>) {
if ($line =~ /\*{3}/) {
my $rpl = <$lfh>;
$rpl = substr($rpl, 0, 3);
$line =~ s/\*{3}/$rpl/;
}
print $rfh $line;
}
close $rfh or die "Can't write close '$rfn': $OS_ERROR";
close $lfh or die "Can't read close '$lfn': $OS_ERROR";
close $bfh or die "Can't read close '$bfn': $OS_ERROR";
出力:
type ..\data\AA-result
whatever
whatever
001 Hosting Services
whatever
whatever
whatever
002 Hosting Services
whatever
whatever
003 Hosting Services
whatever
whatever
whatever
004 Hosting Services
これがうまくいかない場合 (おそらく、B の構造を誤って推測したか、F 戦略が単純すぎるため)、B、L、および R の代表的なサンプルを公開してください。