El comando split de GNU en Linux

El comando split es una de las herramientas de coreutils del sistema GNU con kernel Linux

El comando split sirve para dividir un archivo grande en varios archivos pequeños. Podemos realizar esa división por número de líneas, por tamaño u otras opciones.

Este artículo está inspirado por el artículo escrito por Solene para su blog, que puedes leer en este enlace.

Split está disponible para sistemas GNU/linux gracias a Torbjorn Granlund y Richard M. Stallman. Y disponible en los GNU coreutils, por lo que seguro está disponible en tu distribución.

La funcionalidad es el poder dividir un archivo grandes en varios más pequeños. Bien divididos por líneas o por tamaño de archivo. El uso básico sería:

split archivo.txt

De manera predeterminada y sin más configuraciones divide el archivo en archivos de 1000 líneas cada uno. Archivos que comienza por x y después dos letras comenzando por aa y continuando por ab, ac, etc… Pero por supuesto podemos cambiar ese comportamiento.

Podemos dividir el archivo en archivos de 100 líneas cada uno mediante:

split -l 100 archivo.txt

También podemos dividir el archivo grande en archivos más pequeños y cada uno de un tamaño determinado, por ejemplo 10 Megas:

split -b 10M archivo.txt

Podemos hacer que nuestros archivos divididos no terminen con letras como hemos visto (aa, ab, ac) si no que vayan numerados empezando por el 0. Para ello utilizamos la opción -d:

split -d -b 10M archivo.txt

Pero quizás queremos que no sean números de dos dígitos, si no de 2 o más, para ello añadimos la opción -a y el número de dígitos que queremos:

split -a 3 -d -b 10M archivo.txt

También podemos cambiar el nombre x que le pone el comando split por un prefijo que nosotros determinemos. Para ello escribimos nuestro prefijo detrás del nombre del archivo. En este caso sustituiremos la x por logs_

split -a 3 -d -b 10M archivo.txt logs_

Quizás queremos dividir nuestro archivo no en líneas o no por tamaño, si no simplemente porque queremos forzar el comando para que lo divida en un número determinado de archivos. Para ello usaremos la opción -n y lo dividiremos en 5 partes:

split -n 5 archivo.txt log_

Con todo esto y mucho más podemos utilizar el comando split en GNU/Linux para dividir archivos, pero ¿y si queremos volver a unir los archivos en uno solo?

Para eso utilizamos el comando cat. Por ejemplo, si tenemos los 5 archivos divididos en una carpeta, que se llaman xaa, xab, xac, xad, aae y los queremos unir en un archivo llamado log.txt:

cat xa* > log.txt

Podemos comprobar que el archivo generado es idéntico al que utilizamos originalmente para dividirlo mediante la suma de verificación que nos genera el comando sha256sum

sha256sum archivo.txt log.txt

Y los valores que nos de, deberán ser idénticos.

Espero que te haya resultado interesante. Tienes más opciones con el comando csplit. Te recomiendo que leas la documentación de ambos y escojas el que más te interese.

2 comentarios sobre “El comando split de GNU en Linux

  1. Buena, Genial.
    En caso de que quiera dividir una Carpeta Llena de Archivos, donde un de los archivos es de mas de 4 GB. y quiero pasar ESTA CARPETA (ya Dividida) a un Flash USB Fat 32.
    como se haría.
    Gracias.

Me gustaría saber tu opinión. Deja un comentario (Puedes usar MarkDown)

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. Salir /  Cambiar )

Google photo

Estás comentando usando tu cuenta de Google. Salir /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Salir /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Salir /  Cambiar )

Conectando a %s

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios .