[linux] Grep, caso de uso.

Grep es una herramienta de uso “casi obligatorio” para todo administrador de sistemas. Grep nos permite buscar cadenas de texto en archivos. Tal vez suene sencillo, pero te sorprenderías de lo útil que llega a ser. Y como si fuera poco, también podemos usar egrep para trabajar con expresiones regulares.

Pero en este caso les voy a contar como usé grep para buscar en un dump de base de datos todas las sentencias de creación de tabla que contenían un campo específico.

# El siguiente comando busca todos los 'CREATE TABLE' del dump
luis@luis-pc ~ $ egrep -oz 'CREATE TABLE ([^;]|\s)+;' dumpDB.sql
# El siguiente comando busca todos los 'CREATE TABLE' con un campo "NOMBRECOLUMNA"
luis@luis-pc ~ $ egrep -oz 'CREATE TABLE ([^;]|\s)+NOMBRECOLUMNA([^;]|\s)+;' dumpDB.sql

La explicación:
egrep nos permite utilizar expresiones regulares (les aconsejo leer sobre ellas), y esas expresiones dicen “busca CREATE TABLE ;”.
El parámetro -z le indica a egrep que debe cambiar los caracteres de nueva linea (“ENTER”) por caracteres nulos. De esta manera egrep interpreta al archivo como si estuviera escrito en una única línea (renglón).
El parámetro -o le indica a egrep que debe imprimir solo el texto que coincida con lo que le pedimos buscar. Es importante porque de lo contrario egrep se comporta mostrando en la pantalla todo la línea donde se encuentra el texto que buscamos (leer arriba lo que decimos del parámetro -z).

Espero les sea útil.

Abrazo!!

Anuncios

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s