使用Perl内联编辑,如何在字符串的第N次出现之后插入行?

Ine*_*ion 4 regex scripting perl

寻找一种在给定字符串的第N次出现之后插入行的方法。

以下内容与我要查找的内容很接近,但是基于行号,而不是基于给定字符串的第N次出现。

perl -ni -e 'print; print "Put after fifth line\n" if $. == 5' inFile.txt
Run Code Online (Sandbox Code Playgroud)

blh*_*ing 5

下面将xyz在字符串的第二次出现之后添加一行abc

perl -pi -e '/abc/&&++$n==2 and $_.="xyz\n"' inFile.txt
Run Code Online (Sandbox Code Playgroud)