Teilen Sie eine Textdatei unter Ubuntu Linux in zwei Hälften (oder einen beliebigen Prozentsatz)
Wenn Sie eine unhandliche Textdatei haben, die Sie verarbeiten möchten, kann das Aufteilen in Abschnitte manchmal die Verarbeitungszeit verbessern, insbesondere wenn wir eine Datei in eine Kalkulationstabelle importieren. Oder Sie möchten vielleicht nur einen bestimmten Satz von Zeilen aus einer Datei abrufen.
Geben Sie split, wc, tail, cat und grep ein. (sed und awk nicht vergessen). Linux enthält eine Vielzahl von Dienstprogrammen für die Arbeit mit Textdateien in der Befehlszeile. Für unsere heutige Aufgabe verwenden wir Split und WC.
Zuerst werfen wir einen Blick auf unsere Logdatei… .
> ls -l
-rw-r-r- 1 thegeek ggroup 42046520 2006-09-19 11:42 access.log
Die Dateigröße beträgt 42 MB. Das ist ziemlich groß, aber mit wie vielen Zeilen haben wir es zu tun? Wenn wir dies in Excel importieren möchten, müssen wir weniger als 65.000 Zeilen verwenden.
Lassen Sie uns die Anzahl der Zeilen in der Datei mit dem Dienstprogramm wc überprüfen, das für "Wortzahl" steht..
> wc -l access.log
146330 access.log
Wir sind weit über unsere Grenzen hinaus. Wir müssen dies in 3 Segmente aufteilen. Wir verwenden dazu das Split-Dienstprogramm.
> split -l 60000 access.log
> ls -linsgesamt 79124
-rw-rw-r- 1 thegeek ggroup 40465200 2006-09-19 12:00 access.log
-rw-rw-r- 1 thegeek ggroup 16598163 2006-09-19 12:05 xaa
-rw-rw-r- 1 thegeek ggroup 16596545 2006-09-19 12:05 xab
-rw-rw-r- 1 thegeek ggroup 7270492 2006-09-19 12:05 xac
Wir haben unsere Textdateien nun in drei separate Dateien aufgeteilt, die jeweils weniger als 60000 Zeilen enthalten. Dies schien eine gute Wahl zu sein. Die letzte Datei enthält den verbleibenden Betrag. Wenn Sie diese bestimmte Datei in zwei Hälften schneiden würden, hätten Sie Folgendes getan:
> split -l 73165 access.log
Und das ist alles was dazu gehört.