Comando per dividere un file di testo in base al numero di righe


16

La situazione:

Ho un file di testo che contiene circa 1,5 GB e contiene delle 4000000righe.

Voglio importare questo Libreoffice calce come sai non puoi importare questo enorme file con un gran numero di righe (penso che il massimo sia 65000 righe).

Comunque ciò di cui ho bisogno è un semplice comando che può dividere questo file in file più piccoli con un numero di righe in ogni file <65000 righe.


@hakermania: fatto.
Tarun,

Risposte:


19

Puoi usare il splitcomando:

split -l N /path-to-file

Dove N è il numero massimo di righe che potrebbero essere contenute in un file.

Questo comando suddividerà il file in file più piccoli ciascuno con N numero di righe.

Utilizzare man splitper maggiori informazioni.


3

Se usi la divisione e crei più file, il tuo prossimo problema sarà come usare Calc per manipolare tutti quei dati attraverso tutti quei file. E questo sta accumulando un problema su un altro. Con 65000 righe saranno 62 (!) Pagine.

Stai solo usando lo strumento sbagliato. Utilizzare Libreoffice Base o MySQL per importare i dati, quindi utilizzare Libreoffice Calc per eseguire il calcolo e / o la manipolazione di tali dati.

Per quanto riguarda i limiti, ciò dipende dalla versione di Libreofficevers in uso:

  • pre 3.3.3: il limite è 65 536 righe
  • 3.3.3 e successive: 1 048 576 righe (1M)

Se vuoi puoi fare 4m di record con 3.3.3+ con 4 pagine ma il modulo Base di LibreOffice può importare quasi senza limite di riga se ciò non è abbastanza. Ecco un'introduzione su come eseguire questa operazione ed ecco un esempio di database con file di importazione . Manipolare i dati in Base è facile e veloce.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.