Uso de vi: Buscar y reemplazar

Reemplazando múltiples ocurrencias en un archivo en vi

vi es una herramienta muy potente para la edición de archivos de texto.

Primero de todo para buscar una determinada cadena en un fichero usaremos simplemente:


/buscar 

En este caso buscaremos desde la posición del cursos en adelante. Para buscar al revés lo haremos cambiando / por ?. Por ejemplo:

?buscar

Para el caso que queramos buscar y reemplazar en la línea actual del cursor haremos:

:s/buscar/reemplazar/

En este caso reemplazaría solo la primera cadena que coincidiera, para hacerlo para todas las coincidencias de una linea lo haríamos añadiendo una g al final:


:s/buscar/reemplazar/g 


Para realizar la búsqueda y reemplazo en todo el fichero deberemos añadir % delante del todo de la expresión:

:%s/buscar/reemplazar/


En este caso se haría para todas las lineas del texto, pero solo la primera instancia de cada linea, por lo que para hacerlo para todas las apariciones en el texto deberemos completar la expresión con una g al final:

:%s/buscar/reemplazar/g

Podemos realizar la substitución para un conjunto de lineas. Por ejemplo, para realizar la substitución entre las lineas 3 y 10 haríamos lo siguiente:

:3,10s/buscar/reemplazar/

Igualmente añadiríamos la g para realizar la substitución para todas las apariciones de la linea:

:3,10s/buscar/reemplazar/g