Uso de vi para reemplazar una cadena en varios archivos

09 de agosto 2008

En algún momento usted desea, puede sustituir las apariciones de una cadena a través de múltiples archivos.

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

Este ejemplo ilustra el poder de la vi:

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

Como ejecutar tal, lo siguiente en su sistema:

vi *. html

Esto abrirá todos los archivos que terminan en '. Html' en su directorio de trabajo actual. Luego ejecute el siguiente comando:

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

Eso es todo! El comando anterior lazo sobre cada archivo, en sustitución de (%), la palabra de 2007 con la palabra 2008 a nivel mundial (g) entonces será guardar cada archivo (w) y salir de éste (q).

Tenga en cuenta que la cadena a buscar y la cadena de utilizar para el reemplazo se puede reemplazar con expresiones regulares. Por ejemplo, un símbolo de intercalación (^) se refiere al principio de una 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 por «ensayo», una podría utilizar:

: S argdo% / muestra ^ .* test $ / g | wc

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

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

Tags:
  1. Jens
    16 de julio 2010 a las 20:35

    Gracias por esta pista, que me salvó un montón de trabajo con eso.

  2. administración
    29 de agosto 2008 a las 03:43

    Tiene que haber sido pensar en la comida cuando se escribe :)
    ¡Salud

  3. micro
    23 de agosto 2008 a las 12:24

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

Este blog está protegido por Dave \ \ \ \ \ \ \ 's Spam Karma 2 : 15249 Spams comido y cuenta ...