5 votos

Cómo dividir fácilmente un archivo de texto en trozos más pequeños que un umbral?

Tengo algunos archivos de texto que son de 100 a 300 MB de longitud que quiero ver en Emacs, pero mi Emacs se mete en algunos problemas de rendimiento de la apertura y la que atraviesan estos archivos tan grandes. Por lo tanto, estoy buscando una utilidad fácil para dividir un archivo en partes manejables, por ejemplo de 50 MB cada uno, y a nombre de los trozos se basa en el nombre original, además de algunos sufijo para indicar su ubicación en la secuencia. Cada fragmento se recogen cuando el anterior se ha truncado y ser de no más de 50 MB, con el último fragmento, posiblemente, ser más corto.

¿Hay alguna herramienta fácil para hacer en un equipo con Linux, quizás algo como la cabeza o la cola que da varios resultados, uno para cada parte?

por ejemplo, dada archivo test.out que es de 120 MB de largo, que se rompen en test.out.1 durante los primeros 50 MBs, test.out.2 para el segundo 50 MBs, y test.out.3 para el resto de los 20 MBs al final del archivo.

Yo podría usar combinaciones de head y tail de obtener las piezas, pero me gustaría una herramienta que resume todo esto, tal vez un script en Perl o Python script alguien ya ha creado para hacer esa tarea?

18voto

Hennes Puntos 41345

Ya hay una buena herramienta para que: split

hombre > 1 split 

NOMBRE
 split -- dividir un archivo en trozos

SINOPSIS
 split [-l line_count] [-a suffix_length] [archivo [prefijo]]
 split -b byte_count[K|k|M|m|G|g] [-a suffix_length] [archivo [prefijo]]
 split -p patrón [-a suffix_length] [archivo [prefijo]]


split --bytes 50M test.out test.out_ sería dividir el archivo test.out en la prueba.out_xaa, de prueba.out_xab, de prueba.out_xac, ...

Mucho más feo solución sería el uso de dd

dd if=test.out of=test.out.part1 bs=1M count=50 skip=0 crea un archivo llamado prueba..part1 con los primeros 50 metros de la prueba.. Usted puede aumentar el valor para saltar a la 1 para obtener el segundo fragmento, a 2 para el tercero, etc, etc. Sólo asegúrate de cambiar el nombre de archivo o el resultado final será sobrescribir el mismo archivo de salida.

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by: