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