我编写了一个 perl 脚本,将 3 列拆分为标量,并使用正则表达式替换第二列中的各种值。这部分工作正常,如下所示。不过,我想做的是将第一列 ($item_id 更改为一系列序号,这些序号在 $item_id 的原始(数字)值更改时重新启动。
例如:123
123
123
123
2397
2397
2397
2397
8693
8693
8693
8693
将更改为这样的内容(在列中):
1 2 3 4 1 2 3 4 1 2 3 4
这可以替换第一列或成为新的第四列。我知道我可以通过一系列 if-else 语句来做到这一点并尝试了这个,但这似乎与我已经为我工作的 while 过程不太匹配。- 谢谢,汤姆·谢泼德
open(DATA,"< text_to_be_processed.txt");
while (<DATA>)
{
chomp;
my ($item_id,$callnum,$data)=split(/\|/);
$callnum=~s/110/\%I/g;
$callnum=~s/245/\%T/g;
$callnum=~s/260/\%U/g;
print "$item_id\t$callnum\t$data\n";
} #End while
close DATA;