Tengo entre manos un volcado de base de datos de más de 1 giga de tamaño. Algo que ni el BBEdit es capaz de tragarse con muchos otros programas abiertos.
Desde Terminal, haciendo un cat y sabiendo lo que buscas puedes ir a la línea que necesitas muy rápidamente:
$ cat fichero.sql | grep cadena_a_buscar
Y las líneas con la ‘cadena_a_buscar’ aparecerán filtradas en la shell de comandos, cmo el Terminal del Mac OS X.
Pero esto no es útil si buscas un tabla en concreto y todo los campos que tenía dentro. Para eso puedes dividir el fichero enorme en otros mucho más pequeños, por tamaño en kilobytes o por líneas. A mi me ha venido mejor dividirlo por líneas, en concreto hacer partes por cada 5 mil líneas.
$ split -l 5000 fichero.sql ficheros_salida
Y te crea cuantos ‘ficheros_salida’ necesite de 5 mil líneas cada uno, tantos ficheros como sean necesarios.
Ya solo debes abrir ficheros más pequeños para encontrar las líneas que buscas todas juntas y sin cargar en memoria tantos datos.
Puedes leer más parámetros del comando split en el manual de tu Terminal o en enlaces como este.
SaludoX