Questão Encontre texto e substitua por índice


Eu preciso encontrar uma string e substituí-lo com um índice de movimento (neste caso, encontrar padrão é "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


1


origem


Vejo Estouro de pilha questão O Notepad ++ incrementalmente substitui - DavidPostill♦


Respostas:


É bastante fácil 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 forma abreviada de contar awk imprimir a linha depois de ter substituído todas as ocorrências (se houver) da string; você também poderia dizer

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

2



parece promissor ... vai tentar reportar de volta - aiao
Funciona como um encanto. O awk é bastante complicado na sintaxe e no uso. Qualquer ponte para começar a aprender? - aiao