csplit: divide archivos desde el terminal de tu distro GNU/Linux
Existen muchas formas de dividir un archivo de gran tamaño en varios más pequeños, ya que es una tarea bastante cotidiana que muchos usuarios necesitamos en ocasiones para, por ejemplo, poder enviar archivos por email que no aceptan superar una cantidad concreta en los archivos adjuntos, etc. En Windows muchos conocen el programa Hacha, que sirve para ello, y en GNU/Linux podemos instalar otras alternativas similares como puede ser Hoz.
Hace tiempo estuve utilizando Hoz, pero hace tiempo que no lo he vuelto a usar y desconozco el estado del proyecto en la actualidad. También existen otras alternativas como Dalle, con una sencilla interfaz gráfica que nos ayudará a dividir los ficheros que deseamos en tantas partes como queramos o elegir el tamaño de las partes en las que se fragmentará. Además, Dalle permite también seleccionar el tipo de formato de salida para las partes (Hacha, SplitFile, ZIP, Genérico, Astrotite, etc.).
Seguramente también conocerás otras alternativas, pero hoy voy a hablar de un comando concreto que puedes usar desde la consola de tu distro para dividir ficheros en partes. Ese comando del que hablo se llama csplit, y seguramente ya hayas escuchado algo sobre él o lo hayas empleado. Pero para aquellos que aún no lo conozcan, decir que es un programa que permite hacer divisiones de archivos en función de su contenido, en vez de hacerlo en función del tamaño como el resto, y eso puede tener ventajas.
Como sabrás, split puede dividir archivos en fragmentos de tamaño fijo, pero csplit es una variante que identirficará los límites del gragmento en función del contenido. Por ejemplo, imagina que tienes un fichero de texto llamado prueba que pretendes dividir en fragmentos de texto según un cierto separador que se incluya en dicho texto. Por ejemplo, imagina que el fichero prueba contiene esto:
1 -Hola
2 -Esto
3 -Es
4 -Una
5 -Prueba
Con el siguiente comando, cuando se localiza la línea que comienza por el número 3, se pasará a generar otro fragmento y cada parte se llamará hola1 (con la línea 1 y 2) y hola2 (con la línea 3 a 5):
csplit prueba 3 -f hola
También podríamos incluir la cantidad de líneas que queremos. Por ejemplo, imagina que queremos generar un fichero que contenga hasta la línea 3, el siguiente 3-4 y otro más con 2 líneas más:
csplit prueba 3 {2} -f hola
Y por supuesto podrás usar man csplit para ver muchas más opciones para este comando…
El artículo csplit: divide archivos desde el terminal de tu distro GNU/Linux aparece primero en csplit: divide archivos desde el terminal de tu distro GNU/Linux.