Uso del comando split en linux

Uso del comando split en linux, para dividir archivos de texto.

El comando Split en Linux, se usa para dividir archivos grandes en archivos más pequeños. Es algo normal que tengamos algunos archivos de gran tamaño, incluso algunos que vayan creciendo de forma incremental (normalmente registros).

Estos archivos tan grandes no son fáciles de leer y, aún menos de editar. Para solucionar estos problemas, linux nos ofrece un comando (desconocido por los usuarios noveles), con el cual podemos dividir un archivo en otros más pequeños (con mismo contenido), dependiendo de nuestras necesidades.

En el artículo de hoy, vemos con ejemplos algunas de las funciones más utilizadas del comando tratado en este post.

Comando split en linux

Comando split en linux

 

Uso del comando split en linux

Como ya comentamos anteriormente, split nos ayuda a dividir los archivos en otros más pequeños. Podemos realizar la división por números de línea, tamaño, longitud, y más. Es importante tener presente que de forma predeterminada, el comando split divide un archivo en archivos de 1000 líneas; por tanto, si tenemos un archivo con 2100 líneas, obtendremos tres archivos, dos con 1000, y uno con 100 líneas.

Su sintaxis básica es sencilla.

split [archivo]

Por ejemplo…

split script.txt

# o

split script.sh

Obtenemos tres archivos.

  1. xaa
  2. xab
  3. xac

 

Para nuestras necesidades, el archivo sigue siendo excesivamente grande. Con la opción «-l», podemos definir el número de líneas de los archivos. Mira que fácil es dividirlo en archivos de 150 líneas.

split -l 150 miscript.sh

Ejemplo…

split -l 150 libera.sh

Observa el resultado final.

Ejemplo del comando split

Ejemplo del comando split

 

También podemos aplicar un prefijo en particular.

split [archivo] [nombre de destino]

Vemos un ejemplo aplicando división por líneas.

split -l 10 script.sh miscript.sh

Listamos el resultado con el comando ls.

sergio@sololinux:~/demo$ ls
miscript.shaa  miscript.shac  miscript.shae  miscript.shag
miscript.shab  miscript.shad  miscript.shaf  script.sh

 

Otro argumento interesante es «-d». Este nos enumera los archivos agregando un carácter numérico en la extensión del archivo. En nuestro ejemplo, también cambiamos el nombre y limitamos el número de líneas por archivo.

split -d -l 150 script.sh miscript.sh

Ejecutamos «ls», para visualizar el resultado.

sergio@sololinux:~/demo$ ls
miscript.sh00  miscript.sh02  miscript.sh04  miscript.sh06
miscript.sh01  miscript.sh03  miscript.sh05  script.sh

 

Como ultima opción interesante, te propongo dividir los archivos con el comando split por tamaño. Para ello usamos la opción «-b», seguido del tamaño máximo de cada archivo. Vemos un ejemplo en el cual generamos archivos de un mega.

split -b 1M script.sh

En el caso anterior, todos los archivos generados tienen un tamaño máximo de 1Mb.

 

Si quieres aprender más, puedes visualizar el manual de la herramienta split con el siguiente comando.

man split

Manual del comando split.

SPLIT(1)                      User Commands                     SPLIT(1)
NAME         top
       split - split a file into pieces
SYNOPSIS         top
       split [OPTION]... [FILE [PREFIX]]
DESCRIPTION         top
       Output pieces of FILE to PREFIXaa, PREFIXab, ...; default size is
       1000 lines, and default PREFIX is 'x'.

       With no FILE, or when FILE is -, read standard input.

       Mandatory arguments to long options are mandatory for short
       options too.

       -a, --suffix-length=N
              generate suffixes of length N (default 2)

       --additional-suffix=SUFFIX
              append an additional SUFFIX to file names

       -b, --bytes=SIZE
              put SIZE bytes per output file

       -C, --line-bytes=SIZE
              put at most SIZE bytes of records per output file

       -d     use numeric suffixes starting at 0, not alphabetic

       --numeric-suffixes[=FROM]
              same as -d, but allow setting the start value

       -x     use hex suffixes starting at 0, not alphabetic

       --hex-suffixes[=FROM]
              same as -x, but allow setting the start value

       -e, --elide-empty-files
              do not generate empty output files with '-n'

       --filter=COMMAND
              write to shell COMMAND; file name is $FILE

       -l, --lines=NUMBER
              put NUMBER lines/records per output file

       -n, --number=CHUNKS
              generate CHUNKS output files; see explanation below

       -t, --separator=SEP
              use SEP instead of newline as the record separator; '\0'
              (zero) specifies the NUL character

       -u, --unbuffered
              immediately copy input to output with '-n r/...'

       --verbose
              print a diagnostic just before each output file is opened

       --help display this help and exit

       --version
              output version information and exit

       The SIZE argument is an integer and optional unit (example: 10K
       is 10*1024).  Units are K,M,G,T,P,E,Z,Y (powers of 1024) or
       KB,MB,... (powers of 1000).  Binary prefixes can be used, too:
       KiB=K, MiB=M, and so on.

   CHUNKS may be:
       N      split into N files based on size of input

       K/N    output Kth of N to stdout

       l/N    split into N files without splitting lines/records

       l/K/N  output Kth of N to stdout without splitting lines/records

       r/N    like 'l' but use round robin distribution

       r/K/N  likewise but only output Kth of N to stdout
Dividir archivos con el comando split

Dividir archivos con el comando split

Canales de Telegram: Canal SoloLinux – Canal SoloWordpress

Espero que este artículo te sea de utilidad, puedes ayudarnos a mantener el servidor con una donación (paypal), o también colaborar con el simple gesto de compartir nuestros artículos en tu sitio web, blog, foro o redes sociales. Uso del comando split en linux.

Chat de SoloLinux en Telegram

7 Comentarios

  1. Cristian
    26/01/2021
    • Carlos O
      27/01/2021
    • Sergio G.B.
      27/01/2021

Agregar comentario

1 logo sololinux

Suscríbete a SoloLinux

Recibe todos los nuevos artículos es tu correo electrónico

You have Successfully Subscribed!

Ir al contenido