regex - 搜索和替换字符串,并在替换中放置一个计数器

标签 regex perl string

我有一堆包含完全相同的日志消息的文件。其中一个发生了,但由于消息相同,我不知道是哪一个。我想要做的是在所有这些消息之后附加一个数字来区分它们。

现在通常当我有一堆搜索和替换来执行时,我只写一个快速的 perl 单行代码,如:

perl -pi -e 's/searched/replacement/g' *.c

但是如何在替换中插入计数器?

最佳答案

您可以使用 e regex 修饰符将运行计数器值附加到您的替换中:

perl -pi -e 's/searched/"replacement".++$i/ge' *.c

演示:
$ cat file
hi foo
hey foo
bye foo

$ perl -p -e 's/foo/"bar".++$i/ge' file
hi bar1
hey bar2
bye bar3

关于regex - 搜索和替换字符串,并在替换中放置一个计数器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4498825/

相关文章:

javascript - 匹配和捕获标题的正则表达式

PHP 拆分为 preg_split()

regex - PowerShell多字符串替换效率

c++ - 解释这个宏

java - 匹配函数在 Java 中不起作用

c++ - 仅解析街道名称的 QGeoAddress::street()

学习 Perl 中的正则表达式练习

html - 使用perl获取上传文件的目录

linux - perl 获取文件中的输出以及 STDERR 和 STDOUT

python - 如何使用python从以列中的数字开头的字符串中提取数字