高级查找和替换程序

Mat*_*eld 2 text-processing

我有代码需要在其中进行批量查找和替换(仅在一个文件中)。

我需要对一百多个项目执行以下操作:

转动:

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)

  • @RandomPerson323,用`home/user/testing.txt` 替换`input-and-output-file`。 (2认同)