Divida un archivo de texto por la mitad (o cualquier porcentaje) en Ubuntu Linux

Si está intentando procesar un archivo de texto grande, dividirlo en secciones a veces puede reducir el tiempo de procesamiento, especialmente si tuviéramos que importar un archivo a una hoja de cálculo. O tal vez solo desee tomar un conjunto particular de líneas de un archivo.

Introduzca split, wc, tail, cat y grep. (no olvides sed y awk). Linux contiene un amplio conjunto de utilidades para trabajar con archivos de texto en la línea de comandos. Para nuestra tarea de hoy, usaremos split y wc.

Primero, echemos un vistazo a nuestro archivo de registro….

> ls -l
-rw-r – r– 1 thegeek ggroup 42046520 2006-09-19 11:42 access.log

Vemos que el tamaño del archivo es de 42 MB. Es un poco grande… pero ¿cuántas líneas estamos procesando? Si quisiéramos importar esto a Excel, necesitaríamos menos de 65,000 filas.

Comprobemos el número de líneas en el archivo usando la utilidad wc, que significa «recuento de palabras».

> wc -l access.log
146330 access.log

Estamos muy por encima de nuestro límite. Tendremos que dividir esto en 3 segmentos. Usaremos la utilidad split para hacer esto.

> split -l 60,000 access.log
> ls -l

total 79,124
-rw-rw-r– 1 thegeek ggroup 40465200 2006-09-19 12:00 access.log
-rw-rw-r– 1 thegeek ggroup 16598163 2006-09-19 12:05 xaa
-rw-rw-r– 1 thegeek ggroup 16596545 2006-09-19 12:05 xab
-rw-rw-r– 1 thegeek ggroup 7270492 2006-09-19 12:05 xac

Ahora hemos dividido nuestros archivos de texto en 3 archivos separados, cada uno con menos de 60,000 líneas, lo que parecía un buen número para elegir. El último archivo contiene la cantidad restante. Si tuviera que cortar este archivo en particular por la mitad, habría hecho esto:

> split -l 73165 access.log

Y eso es todo lo que hay que hacer.

Experto Geek - Tu Guía en Tendencias Tecnológicas