如何在Perl中替换文件的一行或一个单词

时间:2013-01-05 06:18:46

标签: perl

我正在用Perl编写一个程序。我需要打开一个现有文件并只替换其中的一个单词。所以我需要知道如何使用Perl替换文件的单词或行。

谁能告诉我怎么做?

2 个答案:

答案 0 :(得分:6)

当然,这就是你需要做的事情:

  1. 打开文件进行阅读。
  2. 打开一个临时文件进行写作。
  3. 虽然您尚未到达文件末尾,
    1. 从输入文件中读取一行。
    2. 使用s///更改该行。
    3. 将可能修改的行打印到输出文件。
  4. 关闭这两个文件。
  5. rename输出文件到输入文件的名称。

答案 1 :(得分:1)

首先使用文件处理程序打开文件

open(KI,"$gy"); #$gy contain your file location

现在打开文件后执行以下操作:

while(my $line= <KI>)
{
if($_=~'word or pattern to be found')
{
$_=~ s/word_pattern to be changed/new word/;
}
}

例如: 要在我们可以使用的字符串中替换伦敦的伦敦事件 S /伦敦/伦敦/

请注意,两个正则表达式(伦敦和伦敦)总共包含三个斜杠。该表达式的结果是所做的替换次数,因此在这种情况下它是0(假)或1(真)。

如果您遇到任何困难,请回复,将很乐意帮助