Procura avançada e substituição de programa

2

Eu tenho um código no qual preciso encontrar e substituir em massa (em apenas um arquivo).

Eu preciso fazer o seguinte com mais de cem itens:

Turno:

begin();
Random code in between.

begin();
More random code...

100 more "begin()"s...

begin();

Em:

begin(1);
Random code in between.

begin(2);
More random code.

100 more "begin()"s...

begin(102);
    
por Matthew D. Scholefield 13.08.2013 / 18:20

1 resposta

15
perl -pe 's/begin\(/$&. ++$n/ge' < input-file

Ou para edição no local (que substitui o arquivo pela cópia modificada de si mesmo):

perl -pi.back -e 's/begin\(/$&. ++$n/ge' input-and-output-file

(remova o .back se estiver se sentindo aventureiro e não precisar de um backup).

O texto acima substitui sempre begin( pelo mesmo ( $& ) com o valor incrementado da variável $n ( ++$n ) anexado ( . ).

Se você deseja substituir begin() em vez de begin( :

perl -pe 's/begin\(\K\)/++$n.")"/ge' < input-file
    
por 13.08.2013 / 18:34