Recientemente, estaba editando mucho texto en uno de mis servidores (para actividades de mantenimiento), donde necesito optimizar el tamaño de un archivo eliminando todo lo que tiene un patrón específico, a veces todas las líneas comentadas y, a veces, todas las líneas que no contienen un patrón específico.
Por ejemplo, uno de mis servidores tenía muchas cuentas de usuario deshabilitadas (líneas comentadas en el archivo /etc/passwd), donde necesito eliminar todas esas cuentas deshabilitadas (las comentadas) usando vim. Esto es lo que hice:
Si desea eliminar todas las líneas comentadas de un archivo , luego deberá eliminar las líneas que comienzan con '#'.
:g/#/d
(o)
:g/^\#/d
Suponga que desea eliminar todas las líneas que coincidan o contengan un patrón específico – entonces el comando es similar al anterior. Por ejemplo:
:g/somepattern/d
Si desea eliminar todas las líneas que no contengan un patrón específico , digamos que dejemos todas las líneas comentadas y eliminemos el resto. Busque el símbolo '!' en el siguiente comando
:g!/#/d
El comando anterior eliminará todas las líneas que no comiencen con '#'. Alternativamente, puede usar el siguiente comando.
: v/#/d
En el comando anterior, usamos 'v' en lugar de 'g' y no se requiere '!'.