Encuentra texto y reemplaza con índice


1

Necesito encontrar una cadena y reemplazarla con un índice en movimiento (en este caso, el patrón de búsqueda es "replaceThis")

Por ejemplo:

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

debe convertirse

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

Mi entorno es windows (y notepad ++) pero también tengo acceso a cygwin


Respuestas:


2

Es bastante facil en awk (en Cygwin):

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

En cada línea, mientras contenga la cadena que está buscando, Reemplace (una vez que aparezca) con el valor del contador, que luego incrementará. los 1 Al final hay una forma abreviada de decir. awk para imprimir la línea después de que haya reemplazado todas las apariciones (si las hubiera) de la cadena; podrias decir

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

parece prometedor ... tratará de informar de nuevo
aiao

Funciona de maravilla. Awk es bastante engorroso en cuanto a sintaxis y uso. ¿Algún puntero para empezar a aprender?
aiao
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.