可能重复:
如何替换Perl中现有文件中的字符串?
我需要创建一个在文件中进行搜索和替换的子例程.
这是myfiletemplate.txt的内容:
CATEGORY1=youknow_<PREF>
CATEGORY2=your/<PREF>/goes/here/
Run Code Online (Sandbox Code Playgroud)
这是我的替换字符串: ABCD
我需要更换的所有实例<PREF>
来ABCD
Tot*_*oto 41
一个班轮:
perl -pi.back -e 's/<PREF>/ABCD/g;' inputfile
Run Code Online (Sandbox Code Playgroud)
Eri*_*rik 22
又快又脏:
#!/usr/bin/perl -w
use strict;
open(FILE, "</tmp/yourfile.txt") || die "File not found";
my @lines = <FILE>;
close(FILE);
foreach(@lines) {
$_ =~ s/<PREF>/ABCD/g;
}
open(FILE, ">/tmp/yourfile.txt") || die "File not found";
print FILE @lines;
close(FILE);
Run Code Online (Sandbox Code Playgroud)
也许最好不要将结果写回原始文件; 而是将其写入副本并首先检查结果.
can*_*nin 16
你也可以这样做:
#!/usr/bin/perl
use strict;
use warnings;
$^I = '.bak'; # create a backup copy
while (<>) {
s/<PREF>/ABCD/g; # do the replacement
print; # print to the modified file
}
Run Code Online (Sandbox Code Playgroud)
用by调用脚本
./script.pl input_file
Run Code Online (Sandbox Code Playgroud)
您将获得一个名为input_file
(包含您的更改)的文件和一个名为的文件input_file.bak
,该文件只是原始文件的副本.
归档时间: |
|
查看次数: |
105103 次 |
最近记录: |