Posted by q3it on domingo, diciembre 11, 2022 in Linux
Hoy voy a hablar del comando split, y lo que hace, es dividir un fichero en ficheros más pequeños, y para esto tenemos dos sintaxis posibles.
La primera es dividir un fichero en ficheros más pequeños dependiendo del número de líneas que nosotros queremos. Y la segunda es por tamaño.
Para el primero, imaginemos que tenemos un fichero muy grande de 1000 líneas, y lo que queremos es generar ficheros más pequeños, por ejemplo, de 20 o 50 líneas. Para ello vamos a utilizar el comando split con la opción -l, y especificamos 20, el nombre del fichero registros.txt.
Esto es lo que hará es generar un fichero por cada 20 líneas y lo que generará son ficheros con este formato, empezando por x luego xaa, xab, xac hasta el número de ficheros que sean necesarios para completar los 20.
Como vemos el prefijo va a ser x pero si nosotros quisiéramos cambiar este prefijo añadiendo un argumento a nuestro comando, por ejemplo, añadiendo el argumento of generará ficheros como ofaa, ofab, ofac,etc... Vamos a ver un ejemplo en la consola.
Tenemos un fichero llamado nombres.txt que tiene 20 líneas. Nosotros vamos a separarlo cada 5 o cada 6 líneas, utilizamos el comando split y la opción -l le damos la opción 5 y luego nombres.txt que es nuestro fichero, de entrada ponemos un prefijo of y vemos que genera ficheros con el inicio of y luego dos caracteres aa, ab, ac, etc.
Abrimos el primero y tenemos las cinco primeras líneas.
Y si abrimos el último, vemos que es Samuel la última línea. ¿Por qué aquí hay 1? por la simple razón de que en el último grupo solo quedaba un nombre.
La otra opción que tenemos con el comando split es utilizar la opción -b y especificar el tamaño, si nosotros no especificamos ningún tipo de tamaño el sistema pensará que es la unidad de medida Byte. Nosotros podemos especificar el tipo, por ejemplo, -b 1M mayúscula especifica que vamos a dividirlo por un megabyte, también podemos utilizar K y G.
Tenemos un fichero grande, que son 105 Megabytes y nosotros queremos dividirlo, entonces podemos utilizar el comando split -b 10M manual.txt.
Y veremos que genera ficheros que empiezan por x porque nosotros no lo hemos especificado el prefijo, y vemos que genera 11 ficheros y cada fichero tendrá un tamaño de 10 Megabytes.
Nosotros podemos enviar estos ficheros a una persona por correo ya que sólo podemos enviar 10 Megabytes, y esa persona puede unir todos estos ficheros en un fichero y tendría el fichero original.