Java Expert....Java/Open Source Addict

Redes Sociales

twitterlinkedinrss feedemail youtube

martes, 14 de diciembre de 2021

Dividir archivo grande en múltiples archivos según número de líneas en Linux o Mac


 Hola amigos, amigas en esta oportunidad les quiero compartir la forma de dividir un archivo grande en múltiples archivos según un número de líneas establecidas. Lo cual me fue de mucha utilidad, ya que necesito procesar un archivo de 8.4 Gigabytes, permítanme indicarles como hacerlo.


1.- Abrir un terminal y ubicarse en el directorio donde se encuentra su archivo.

2.- Ejecutar el comando 

split -a <numero_caracteres_sufijo> -l <numero_lineas> <nombre_archivo_con_extension> <nombre_archivo_a_generar_sin_extension>

Donde:

  • <numero_caracteres_sufijo>.- Es el número de caracteres utilizado junto al nombre que se va a generar cuando se haga la división; es decir, en este caso coloque dos y se utilizarán dos letras comenzado desde aa.
  • <numero_lineas>.- Es el número de líneas utilizando para realizar la división del archivo, en este caso se generarán archivos cada 1 millón de líneas (1000000).
  • <nombre_archivo_con_extension>.- Es el nombre del archivo original con extensión, el cual se va a proceder a dividir según el número de líneas configurados con el parámetro -l
  • <nombre_archivo_a_generar_sin_extension>.- Es el nombre del archivo parcial que se generará según el número de líneas establecida, el cual será concatenado con los caracteres comenzando desde la secuencia aa hasta que se termine el número de líneas del archivo principal.
3.- Luego de ejecutar el comando se crearan los archivos según la cantidad de líneas establecido, en este caso se crearon 26 archivos, cada uno de 1 millón de líneas.


4.- Finalmente si se requiere cambiar de extensión, se puede ejecutar el comando:

for f in <nombre_archivo_a_generar_sin_extension>_*; do 

    mv -- "$f" "${f%}.csv"     

done