Hola a todos. En ocasiones, debemos de tratar con archivos extremadamente grandes (tamaño en Bytes) y debemos ver en concreto el contenido de un número de línea específico del archivo; un ejemplo clásico de esto, es el backup de una base de datos de MySQL… pueden llegar a ser tan grandes estos archivos y, si hay algún error en todo el proceso de restauración de una base de datos (normalmente, no debería de pasar), una buena práctica podría ser revisar la línea específica de dicho error, para ver cómo solventarlo.
Bueno, el problema es que si usamos un editor de texto cualquiera, se tardará un mundo en cargar el archivo y, para llegar a esa línea, se tardará un mundo también; para solventar esto, podemos usar dos comandos: less o sed.
Pongamos un ejemplo… tengo un archivo llamado base.sql de unas 100 mil líneas, y quiero ver específicamente la línea 77,000; entonces, deberíamos hacer lo siguiente:
less +77000 -N base.sql
De esta manera, se podrá ver en específico la línea 77,000 del archivo base.sql y, con el parámetro -N, se verá el # de línea como para que tengamos referencia. Con el comando sed sería así:
sed -n '77000'p base.sql
Para tener unas líneas de contexto y poder entender mejor la situación del contenido mostrado, podemos usar la siguiente línea de comando:
less +77000 -j 7 base.sql
En este caso, la línea de comando anterior abrirá el archivo base.sql con la línea 77,000 en la séptima línea.
Ahora, si quisiera ver un rango de líneas, recomendaría usar el comando sed; digamos, queremos ver desde la línea 76995 hasta la línea 77005, ingresaríamos la línea de comando siguiente:
sed -n '76995,77005'p base.sql
y, bueno, sed es un comando muy poderoso que no logro a entender del todo bien, pero igual… algo práctico, en este contexto de entrada, es también poder ver el contenido de un archivo de texto desde una línea en particular hasta el final; para esto, hacemos lo siguiente:
sed -n '77000,$'p base.sql
Bien, eso sería todo. Si tienen otros tips relacionado al tema de esta entrada de blog, no duden en compartirlo en los comentarios. Espero les sea de utilidad esta información. Saludos.