Localizar texto e substituir por índice

1

Eu preciso encontrar uma string e substituí-la por um índice em movimento (nesse caso, find pattern is "replaceThis")

Por exemplo:

id=replaceThis
......
id=replaceThis
......
id=replaceThis

deve se tornar

id=0
......
id=1
......
id=2

Meu ambiente é windows (e notepad ++) mas também tenho acesso ao cygwin

    
por aiao 08.03.2015 / 15:49

1 resposta

2

É bastante fácil em awk (no Cygwin):

awk '{ while ($0 ~ /replaceThis/) sub(/replaceThis/, counter++) } 1'

Em cada linha, contanto que contenha a string que você está procurando, substitua (uma ocorrência) pelo valor do contador, que você então incrementa. O 1 no final é uma maneira abreviada de dizer awk para imprimir a linha depois de ter substituído todas as ocorrências (se houver alguma) da cadeia de caracteres; você poderia também dizer

awk '{ while ($0 ~ /replaceThis/) sub(/replaceThis/, counter++); print }'
    
por 08.03.2015 / 16:12