对不起,如果这个问题听起来很愚蠢,但我已经搜寻了很多,到现在为止,我正在一天的一小部分工作中完成一项相当简单的任务。我可以使用搜索和替换在Perl中插入累进数字吗?
我需要将渐进编号的ID插入到文本文件中。该文件中已有占位符,因此我倾向于使用搜索和替换。我能做的最好的是以下几点:
#!/usr/bin/perl
my $counter = 1;
my $oldID = "docID=\"";
my $newID = "docID=\"14$counter"; #should the return the IDs 141, 142, 143 ...
open (FILE, "file.txt") || die $!;
@content = <FILE>;
foreach (@content){
s/$oldID/$newID/;
$counter++;
}
open (OUT, ">file_ID.txt") || die $!;
print OUT @content;
close OUT;
close(FILE);
print = "$counter" #this is to test if the counter is working.
这找到并替换了docID =“”。令人遗憾的是,它用141替换了docID的所有出现。
我会认为它不起作用,因为所有的事件一次被全部替换,并且计数器从来没有机会变大。然而,如果我看到$ counter增长过大,这看起来不太合理。它正好是docID发生次数的12倍。
我相信我需要的Perl只更换一个的docID的出现时再抬高计数器,然后做一个循环,直到文件的结尾。
谁能帮助我吗?我将非常感激
THX
尤利乌斯
它的工作,非常感谢! :) – Iulius 2011-04-06 22:28:51