Ich habe eine große (nach Anzahl der Zeilen) reine Textdatei, die ich in kleinere Dateien aufteilen möchte, ebenfalls nach Anzahl der Zeilen. Wenn meine Datei also etwa 2 Mio. Zeilen hat, möchte ich sie in 10 Dateien mit 200k Zeilen oder 100 Dateien mit 20k Zeilen aufteilen (plus eine Datei mit dem Rest; dass sie gleichmäßig teilbar ist, spielt keine Rolle).
Ich könnte dies ziemlich leicht in Python tun, aber ich frage mich, ob es irgendeine Art von Ninja Weg, dies zu tun mit Bash und Unix-Dienstprogramme (im Gegensatz zu manuell Schleife und Zählen / Partitionierung Zeilen).
3 Stimmen
Nur aus Neugier: Wie kann man sie nach dem "Aufteilen" "kombinieren"? Etwas wie "cat part2 >> part1"? Oder gibt es ein anderes Ninja-Dienstprogramm? Könnten Sie Ihre Frage aktualisieren?
14 Stimmen
Um es wieder zusammenzusetzen,
cat part* > original
12 Stimmen
Ja, cat ist die Abkürzung für concatenate. Im Allgemeinen ist apropos nützlich, um geeignete Befehle zu finden. Siehe z.B. die Ausgabe von: apropos split
0 Stimmen
@pixelbeat Das ist ziemlich cool, danke
3 Stimmen
Nebenbei bemerkt, sollten OS X-Benutzer sicherstellen, dass ihre Datei LINUX- oder UNIX-artige Zeilenumbrüche/Zeilenende-Indikatoren (LF) anstelle von MAC OS X-artigen Zeilenende-Indikatoren (CR) enthält - die Befehle split und csplit funktionieren nicht, wenn Ihre Zeilenumbrüche Carriage Returns anstelle von LineFeeds sind. TextWrangler von BareBones Software kann Ihnen dabei helfen, wenn Sie mit Mac OS arbeiten. Sie können wählen, wie Ihre Zeilenumbrüche aussehen sollen, wenn Sie Ihre Textdateien speichern (oder Speichern unter...).
2 Stimmen
Binäre Version: unix.stackexchange.com/questions/1588/