伙计们,我从一本书中获得了这个示例代码,该示例代码展示了如何使用正则表达式修改多个文件中的内容。
#!/usr/bin/perl -w
use strict;
chomp(my $date = `date`);
$^I = ".bak";
while (<>) {
s/^Author:.*/Author: Randal L. Schwartz/;
s/^Phone:.*\n//;
s/^Date:.*/Date: $date/;
print;
}
从它的外观来看,我知道缺少某些东西 - 这是文件名。但书坚持。所以当我自己尝试时,它只接受来自键盘的输入,这是我所期望的。所以我有一个修改过的代码,它打开一个文件,但它不会再创建备份:
由这条线处理
$^I = ".out";
#! usr/bin/perl
use warnings;
use strict;
open (MYFILE,'fewlines');
$^I = ".out";
while (<MYFILE>) {
s/fred/larry/ig;
print;
}
这一行也做同样的事情,但在命令提示符下。我想在命令提示符下编写程序本身
perl -p -i.out -w -e 's/fred/larry/ig' filename
如何在程序本身中转换该行?