<分区>
我正在尝试使用 perl 的方便的非贪婪搜索模式,但让 perl 搜索和替换指定行的运气为零,例如:
perl -pi -e '10,19s/pat1/pat2/g' file
我经常使用 sed。有没有办法使用 perl 来实现这一点?我遇到了麻烦,sed 的非贪婪算法无法满足我的需求,但 perl 的意志可以。
<分区>
我正在尝试使用 perl 的方便的非贪婪搜索模式,但让 perl 搜索和替换指定行的运气为零,例如:
perl -pi -e '10,19s/pat1/pat2/g' file
我经常使用 sed。有没有办法使用 perl 来实现这一点?我遇到了麻烦,sed 的非贪婪算法无法满足我的需求,但 perl 的意志可以。
最佳答案
使用 $.
与行号匹配的变量。
如果您想替换这两个行号(包括)之间的模式,您可以使用 Range operator ..
如下所示:
perl -i -pe 's/pat1/pat2/g if 10 .. 19' file
关于perl - 用 perl 替换指定行号上的模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25296525/