Tengo una tarea recurrente de dividir un conjunto de archivos de registro de Apache con gzip grandes (alrededor de 1-2 GiB cada uno) en varias partes (por ejemplo, fragmentos de 500K líneas). Los archivos finales se deben volver a codificar para limitar el uso del disco.División de archivos de registro descomprimidos sin almacenar los splits sin comprimir en el disco
En Linux Yo suelo hacer:
zcat biglogfile.gz | split -l500000
Los archivos resultantes archivos se nombrarán Xaa, xab, XAC, etc Así que hago:
gzip x*
El efecto de este método es que como un resultado intermedio, estos enormes archivos se almacenan temporalmente en el disco. ¿Hay alguna manera de evitar este uso intermedio del disco?
¿Puedo (de una manera similar a lo que hace xargs) dividir la salida de la tubería a través de un comando (como gzip) y volver a comprimir la salida sobre la marcha? ¿O estoy mirando en la dirección incorrecta y hay una forma mucho mejor de hacerlo?
Gracias.
Me gustaría implementar la funcionalidad de estilo dividido en un lenguaje de scripting, donde podría escribir las líneas directamente en archivos comprimidos. –