【发布时间】:2018-10-02 15:58:27
【问题描述】:
我正在尝试匹配文本文件中连续的相似行,并且只保留最后一个。每一行都包含一个数字计数,所以我匹配文本和数字来获得计数。
例如,如果我有很多带有字符“a”的连续行,我已经设法做到了如下。
$ (for i in `seq 1 1 100000`; do echo a; done;) |
perl -0777 -pe 's/(a\n)*(a\n)/\2/igs'
a
但如果我将它与数字的附加匹配一起使用,perl 似乎会以 2^15 的批次进行。
$ (for i in `seq 1 1 100000`; do echo $i; done;) |
perl -0777 -pe 's/(\d*\n)*(\d*\n)/\2/igs'
32768
65536
98304
100000
我做错了什么,这是 perl 中的错误,还是在某处记录?最好的方法是什么?
我正在使用 perl 5.22.1。
【问题讨论】: