Linux / Comando split: dividir archivos por líneas o tamaño

split divide archivos grandes en varios archivos fragmentados según el tamaño o el número de filas especificado. Se utiliza cuando se desea dividir archivos para cumplir con límites de transferencia o crear unidades de procesamiento por lotes.

Por defecto, split crea fragmentos de 1000 líneas con nombres como xaa: x es el prefijo y aa el sufijo. También puede dividir datos binarios por bytes y reconstruirlos al concatenar los fragmentos en el orden original. Elija un prefijo sin conflictos con archivos existentes.

Sintaxis básica

split [opciones] [archivo_de_entrada [prefijo_de_salida]]

La implementación instalada y las opciones pueden variar según la distribución. Verifique la descripción de man split en el sistema actual.

Ejemplos de uso

División por número de filas

Se guarda en archivos separados cada 500 filas.

split -l 500 data.txt part-

División por tamaño

Se crean fragmentos de hasta 100 MiB.

split -b 100M archive.bin archive-part-

Recombinación en orden

Verifique el orden de clasificación de los nombres de los fragmentos y luego únalos.

cat archive-part-* > archive-restored.bin

Verificar los archivos generados después de la división

El siguiente comando divide cuatro líneas en dos líneas cada una. Se crearán part-aa y part-ab en el directorio actual, así que pruébelo en un directorio de trabajo vacío.

printf 'a\nb\nc\nd\n' | split -l 2 - part-
cat part-aa
cat part-ab

Ejemplo mostrando el contenido de ambos archivos en orden:

a
b
c
d

split por sí mismo no imprime el nombre del archivo. Si ya existe un archivo con el mismo nombre, se puede sobrescribir, así que configure un prefijo único. Para recombinar en el orden original, liste los archivos en el orden correcto usando cat part-* > archivo_restaurado y verifique el tamaño o la suma de verificación del resultado restaurado.

Opciones y formatos principales

Opciones·Formato Descripción
-l N Inserte N líneas en cada archivo.
-b tamaño Especifique el tamaño máximo en bytes de cada fragmento.
-d Use sufijos numéricos.
-a N Especifique la longitud del sufijo como N caracteres.
--additional-suffix=texto Se agrega una cadena adicional al final del nombre del archivo dividido.

Precauciones al usar

split -b también puede cortar en medio de una línea de texto. Para preservar la línea, consulte el comportamiento de -l o GNU -C. Al unir los fragmentos, conviene seleccionar solamente los archivos con ese prefijo y compararlos con el original mediante un hash.

Preguntas frecuentes

¿Se elimina el archivo original al dividirlo con split?

No. El archivo de entrada permanece intacto y se crean nuevos archivos fragmentados.

Documentación oficial

Puede verificar el comportamiento exacto de las opciones y las diferencias según la implementación en la documentación oficial de split.