tantosoft.com

VIM patrones de sustitución

El programa VI y sus variantes son una herramienta de edición de texto muy potente. LLevo años usándolo y no dejo de aprender nuevos comandos, configuraciones y combinaciones. Yo uso el VIM en línea de comandos con code-highligh para colorear los lenguajes de código más conocidos.

A eveces me encuentro que tengo que editar un gran fichero, por ejemplo de un dump de una tabla de mysql o similar con miles de líneas similares, donde he de cambiar un campo, pero ese campo es distinto en cada línea, sin embargo, se encuantra localizado dentro de algún patrón, como al principio de la línea, o entre corchetes, o cosas parecidas.

Por ejemplo tuve que editar un fichero de lenguage de Joomla con variables de espacios, y cambiar todas esas variables sustituyendo los espacios por guión bajo, osea, cambiar esto:

ESTO ES UNA VARIABLE DE LENGUAJE="Esta variable se traduce a esto"

por esto otro:

ESTO_ES_UNA_VARIABLE_DE_LENGUAJE="Esta variable se traduce a esto"

En un fichero que contenía miles de variables. Pués bien, con prueba y error generé este comando que me funcionó a las mil maravillas para sustituir los espacios en blanco desde el principio de línea hasta el signo "=":

:%s/^.\{-}=/=substitute(submatch(0),' ','_','g')/gc

 

En otra ocasíón necesité borrar la primera palabra entre comillas simples de miles de líneas de un dump de una base de datos, que era algo así como sustituir esto:

('primera frase','segunda','tercera')

por esto otro:

('','segunda','tercera')

para esto utilicé este comando:

:%s/^(.\{-},/('',/gc

 

Me encanta el VIM.

Quiere contactar con nosotros?

Envíenos un Esta dirección de correo electrónico está siendo protegida contra los robots de spam. Necesita tener JavaScript habilitado para poder verlo. o llámenos a (+34) 698 259 856