2013-11-03 52 views
1

我有十幾個,數百比賽之間的任何一個文件上搜索與重編的替代

/playOrder="(\d+)"/ 

這些ePub的電子書的索引文件,在任何情況下,正則表達式搜索疑惑。

是否有可能讓perl正則表達式替換找到所有這些,並且「神奇地」將它們全部重新編號爲從1開始的序列?如提出要求OP作爲答案

+2

'perl -pe's/playOrder =「\ K \ d +」/ ++ $ i。 q(「)/ ge'infile> outfile' – TLP

+0

@TLP,謝謝。作爲回答請發帖,所以我可以批准它 –

回答

3

發佈評論,:

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

這一個班輪正在使用的是由評估來創建一個替代領域,創造一個像1"2"序列...

如果使用前瞻斷言而不是插入新的雙引號,可以進一步優化"

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

謝謝,你是這個人的救星。163手動替換會讓我漲牆壁。:P –

+0

不客氣。 – TLP