我需要在perl 脚本中就地编辑一个文件,所以经常使用一个班轮:
perl -p -e s/<value>/<value>/ig
Run Code Online (Sandbox Code Playgroud)
不适用于这种情况。如何从 perl 脚本中获得相同的结果?
open(CRONTAB, "+<file" || die "...";
while (<CRONTAB>) {
if ($_ =~ /value/) {
s/^\#+//;
print "$_\n";
}
}
Run Code Online (Sandbox Code Playgroud)
我的印刷品正好显示了我想要的东西。这只是我正在寻找的就地编辑。
do {
local $^I='.bak'; # see perlvar(1)
local @ARGV=("file");
while(<>){
s/<value>/<value>/ig;
print;
}
};
Run Code Online (Sandbox Code Playgroud)
不过要小心:$^I
就像 perl 一样,-i
它不是防撞的。
归档时间: |
|
查看次数: |
7235 次 |
最近记录: |