我的文件包含100行的Perl編輯文件
1234 ABC 100.0.0.0
4567 DEF 200.0.0.0 .....
我匹配我的文件中的模式。例如搜索4567
並將200.0.0.0
替換爲500.0.0.0
,以便該行現在看起來爲4567 DEF 500.0.0.0
。
my $file = "$file_path/file.lst";
my $newid = "500.0.0.0"
open MAST, $file or die "Unable to open file.lst: $!";
my $new = "$file.tmp.$$";
my $bak = "$file.bak";
open(NEW, "> $new") or die "can't open $new: $!";
while (<MAST>) {
my ($pattern,$id) = (split /\s+/, $_)[0,4];
print $_;
if ($_ =~ m/^$pattern/) {
$_ =~ s/$id/$newid/g;
}
(print NEW $_) or die "can't write to $new: $!";
}
close(MAST) or die "can't close $file: $!";
close(NEW) or die "can't close $new: $!";
rename($file, $bak) or die "can't rename $file to $bak: $!";
rename($new, $file) or die "can't rename $new to $file: $!";
我需要做的:
顯示線路變更前和變更在屏幕上後,要求用戶確認,後來與其他東西進行。
請指教。
http://www.perlmonks.org/?node_id=1146888 – choroba
爲什麼你需要確認?這似乎是[XY問題](http://meta.stackexchange.com/questions/66377/what-is-the-xy-problem) – Sobrique