我在搜索
上有一打数十到数百个匹配的文件 /playOrder="(\d+)"/
这些都在ePub电子书的索引文件中,以防有人想知道。
是否有可能让perl正则表达式替换所有这些,并且“神奇地”将它们重新编号为序列,从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