Usando vi para reemplazar una cadena de varios archivos

En algún momento usted desea, puede sustituir las ocurrencias de una cadena en varios archivos.

Hay una manera fácil de hacerlo con la ayuda del editor vi.

Este ejemplo ilustra el poder de vi:

Supongamos que tiene 100. Html, y que desea reemplazar la aparición de la cadena '2007 'con '2008'.

Por lo tanto, ejecutar lo siguiente en su sistema:

vi *. html

Esto abrirá todos los archivos que terminan en ". Html" en su directorio de trabajo actual. A continuación, ejecute el siguiente comando:

: Argdo% s/2007/2008/g | wq

Eso es todo! el comando anterior se repetirá en cada archivo, en sustitución de (%) de la palabra 2007 con la palabra 2008 a nivel mundial (g) entonces será guardar cada archivo (w) y salir de ellos (q).

Tenga en cuenta que la cadena a buscar y la cadena que se utiliza para la sustitución puede ser sustituida por expresiones regulares. Por ejemplo, un símbolo de intercalación (^) se refiere al principio de la línea, el signo de dólar ($) se refiere a su fin, etc Así que si tuviéramos que reemplazar todas las líneas que comienzan con 'muestra' y termina con 'test', un puede usar:

: Argdo% s / ^ .* muestra de prueba de $ / g | wc

donde .* concuerda con algo en la cadena entre los dos.

Tenga en cuenta también que puede hacer la búsqueda y reemplazo de acción sin relación con el caso (es decir, una búsqueda de "palabra" coincidirá con "palabra"). Por lo demás, basta con sustituir "/ g" por "/ gi '

4 Comentarios

mike 23 de agosto 2008 a las 24:24

es símbolo de intercalación no, la zanahoria!

admin 29 de agosto 2008 a las 3:43 AM

Debe haber estado pensando en la comida cuando se escriba :)
Aplausos

Jens 16 de julio 2010 a las 8:35 pm

Gracias por esta receta, que me salvó un montón de trabajo con el.

De lo mucho 27 de septiembre 2010 a las 13:49

Thanx mucho, me ayudó demasiado.

Tengo un comentario, por número relativamente pequeño de los reemplazos, lo que llevó a sustituir también podría ser útil.

:% S argdo / SEARCH_STRING / replace_string / gc | wq

con un adicional de "c" de "confirmación"

Gracias de nuevo :)

Deja un comentario

Su comentario