對不起,如果這個問題聽起來很愚蠢,但我已經搜尋了很多,到現在爲止,我正在一天的一小部分工作中完成一項相當簡單的任務。我可以使用搜索和替換在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