Comando para dividir un archivo de texto según el número de líneas

16

La situación:

Tengo un archivo de texto que tiene aproximadamente 1,5 GB y contiene aproximadamente 4000000líneas.

Quiero importar esto Libreoffice calcy, como saben, no pueden importar este gran archivo con una gran cantidad de líneas (creo que el máximo es 65000 líneas).

De todos modos, lo que necesito es un comando simple que pueda dividir este archivo en archivos más pequeños con un número de líneas en cada archivo <65000 líneas.

Maythux
fuente
@hakermania: hecho.
Tarun

Respuestas:

19

Puedes usar el splitcomando:

split -l N /path-to-file

Donde N es el número máximo de líneas que podrían estar en un archivo.

Este comando dividirá el archivo en archivos más pequeños, cada uno con N número de líneas.

Úselo man splitpara más información.

Tarun
fuente
3

Si usa dividir y crear múltiples archivos, su próximo problema será cómo usar Calc para manipular todos esos datos en todos esos archivos. Y eso es acumular un problema sobre otro. Con 65000 líneas, esto será 62 (!) Páginas.

Simplemente estás usando la herramienta incorrecta. Use Libreoffice Base o MySQL para importar los datos y luego use Libreoffice Calc para hacer el cálculo y / o la manipulación de esos datos.

En cuanto a los límites, esto depende de la versión de Libreoffice que esté utilizando:

  • pre 3.3.3: el límite es 65 536 filas
  • 3.3.3 y posterior: 1 048 576 filas (1M)

Si lo desea, puede hacer registros de 4m con 3.3.3+ con 4 páginas, pero el módulo Base de LibreOffice puede importar casi sin límite de filas si eso no es suficiente. Aquí hay una introducción sobre cómo hacer esto y aquí hay una base de datos de ejemplo con un archivo de importación . Manipular los datos en Base es fácil y rápido.

Rinzwind
fuente