我有一些代码需要进行批量查找和替换(仅在一个文件内)。
我需要对一百多个项目执行以下操作:
转动:
begin();
Random code in between.
begin();
More random code...
100 more "begin()"s...
begin();
进入:
begin(1);
Random code in between.
begin(2);
More random code.
100 more "begin()"s...
begin(102);
答案1
perl -pe 's/begin\(/$&. ++$n/ge' < input-file
或者进行就地编辑(即用文件本身的修改副本替换文件):
perl -pi.back -e 's/begin\(/$&. ++$n/ge' input-and-output-file
(.back
如果您喜欢冒险并且不需要备份,请删除)。
上面begin(
用相同的 ( ) 替换了ever,并附加了 ( )的变量 ( )$&
的增量值。$n
++$n
.
如果你想替换begin()
而不是begin(
:
perl -pe 's/begin\(\K\)/++$n.")"/ge' < input-file