Ich habe eine ziemlich große .msg-Datei im UIEE-Format formatiert.
$ wc -l big_db.msg
8726593 big_db.msg
Im Wesentlichen besteht die Datei aus Einträgen unterschiedlicher Länge, die ungefähr so aussehen:
UR|1
AA|Condon, Richard
TI|Prizzi's Family
CN|Collectable- Good/Good
MT|FICTION
PU|G.P. Putnam & Sons
DP|1986
ED|First Printing.
BD|Hard Cover
NT|0399132104
KE|MAFIA
KE|FICTION
PR|44.9
XA|4
XB|1
XC|BO
XD|S
UR|10
AA|Gariepy, Henry
TI|Portraits of Perseverance
CN|Good/No Jacket
MT|SOLD
PU|Victor Books
DP|1989
BD|Mass Market Paperback
NT|1989 tpb g 100 meditations from the Book of Job "This book...help you
NT| persevere through the struggles of your life..."
KE|Bible
KE|religion
KE|Job
KE|meditations
PR|28.4
XA|4
XB|5
XC|BO
XD|S
Dies ist ein Beispiel für zwei Einträge, die durch eine Leerzeile getrennt sind. Ich möchte diese große Datei in kleinere Dateien aufteilen, ohne einen Eintrag in zwei Dateien aufzuteilen.
Jeder einzelne Eintrag wird durch eine neue Zeile (eine vollständig leere Zeile) in der Datei getrennt. Ich möchte diese 8,7-Millionen-Zeilendatei in 15 Dateien aufteilen. Ich verstehe, dass split
es solche Tools gibt, aber ich bin mir nicht ganz sicher, wie ich die Datei aufteilen soll, sondern nur in einer neuen Zeile, damit ein einzelner Eintrag nicht in mehrere Dateien aufgeteilt wird.
|
(wie UR
, AA
, TI
) relevant für die Zählung von Dateien, auch exakt das gleiche sein?
csplit
existiert auch.