正则表达式搜索与重新编号替换

时间:2013-11-03 13:27:13

标签: regex perl

我在搜索

上有一打数十到数百个匹配的文件
 /playOrder="(\d+)"/ 

这些都在ePub电子书的索引文件中,以防有人想知道。

是否有可能让perl正则表达式替换所有这些,并且“神奇地”将它们重新编号为序列,从1开始?

1 个答案:

答案 0 :(得分:3)

根据OP的要求发表评论作为答案:

perl -pe 's/playOrder="\K\d+"/++$i . q(")/ge' infile > outfile 

此单行使用通过评估创建的替换字段,创建类似1"2" ...

的序列

如果使用先行断言而不是插入新的双引号",则可以进一步优化:

perl -pe 's/playOrder="\K\d+(?=")/++$i/ge' infile > outfile