Befehl zum Teilen einer Textdatei nach Zeilenanzahl

16

Die Situation:

Ich habe eine Textdatei, die ungefähr 1,5 GB groß ist und ungefähr 4000000Zeilen enthält.

Ich möchte dies importieren Libreoffice calcund wie Sie wissen, können Sie diese große Datei mit großer Anzahl von Zeilen nicht importieren (ich denke, maximal 65000 Zeilen).

Was ich auf jeden Fall brauche, ist ein einfacher Befehl, der diese Datei in kleinere Dateien mit einer Zeilenanzahl von <65000 Zeilen in jeder Datei aufteilen kann.

Maythux
quelle
@hakermania: fertig.
Tarun

Antworten:

19

Sie können den splitBefehl verwenden:

split -l N /path-to-file

Wobei N die maximale Anzahl von Zeilen ist, die sich in einer Datei befinden können.

Dieser Befehl teilt die Datei in kleinere Dateien mit jeweils N Zeilen auf.

Verwenden Sie man splitfür weitere Informationen.

Tarun
quelle
3

Wenn Sie split verwenden und mehrere Dateien erstellen, besteht Ihr nächstes Problem darin, Calc zu verwenden, um all diese Daten in all diesen Dateien zu bearbeiten. Und das stapelt ein Problem auf ein anderes. Bei 65000 Zeilen sind dies 62 (!) Seiten.

Sie verwenden nur das falsche Werkzeug. Verwenden Sie Libreoffice Base oder MySQL, um die Daten zu importieren, und verwenden Sie dann Libreoffice Calc, um die Berechnung und / oder Bearbeitung dieser Daten durchzuführen.

In Bezug auf die Grenzwerte hängt dies von der von Ihnen verwendeten Libreoffic-Version ab:

  • vor 3.3.3: Limit ist 65 536 Zeilen
  • 3.3.3 und höher: 1 048 576 Zeilen (1 Million)

Wenn Sie möchten, können Sie 4-Millionen-Datensätze mit 3.3.3+ mit 4 Seiten erstellen, aber das Basismodul von LibreOffice kann fast ohne Zeilenbeschränkung importieren, wenn dies nicht ausreicht. Hier finden Sie eine Einführung und hier eine Beispieldatenbank mit Importdatei . Das Manipulieren der Daten in Base ist einfach und schnell.

Rinzwind
quelle