我需要更新文件中的特定行。
我使用正则表达式。最后,我跑过下一行。
文件dog2cat
包含:
This example
The dog is drinking.
It is drinking milk.
我的代码:
open(FILE,"+<dog2cat");
while(<FILE>)
{
my $line=$_;
if($line =~ /dog/)
{
$line =~ s/dog/cat/;
print FILE $line;
}
}
close FILE;
最后文件包含
This example
The dog is drinking.
The cat is drinking.
我想要
This example
The cat is drinking.
It is drinking milk.
答案 0 :(得分:2)
对于简单的文件更新任务,您可以使用Perl&#34; one-liner&#34;:
perl -i -pe 's/dog/cat/g' dogcat.txt
-i
表示要更新您正在处理的文件(如果要写入新文件,可以为其添加扩展名。例如,-i.bak
将写入名为dogcat.txt.bak
)的文件。
-p
说明遍历每一行,并将其打印出来(使用-i
,打印回文件)。
-e
执行文件中每行的引号之间的任何内容。
答案 1 :(得分:1)
打开第二个文件进行输出,打印到该文件。或者打印到屏幕而不是其他文件,当您运行脚本时,将输出管道传输到文件中。