Linux / Befehl split: Große Dateien in kleinere Teile aufteilen

split teilt eine große Datei in mehrere Teildateien basierend auf einer angegebenen Größe oder Anzahl von Zeilen. Es wird verwendet, um Dateien gemäß Übertragungsgrenzen zu splitten oder Batch-Verarbeitungseinheiten zu erstellen.

Standardmäßig wird in Einheiten von 1000 Zeilen aufgeteilt und verwendet Präfixe/Suffixe wie xaa. Binärdateien können in Bytes geschnitten werden und können wiederhergestellt werden, wenn sie in der ursprünglichen Reihenfolge zusammengefügt werden. Wählen Sie ein Präfix, sodass die Ausgabedateien nicht mit vorhandenen Dateien in Konflikt geraten.

Grundlegende Syntax

split [options] [input_file [output_prefix]]

Installierte Implementierungen und Optionen können je nach Distribution variieren. Überprüfen Sie die Beschreibung des aktuellen Systems mit man split.

Beispiele

Nach Anzahl der Zeilen splitten

Speichert in separate Dateien in Einheiten von 500 Zeilen.

split -l 500 data.txt part-

Nach Größe splitten

Erstellt Stücke von jeweils etwa 100 MiB.

split -b 100M archive.bin archive-part-

In der Reihenfolge wieder zusammenführen

Überprüfen Sie die Reihenfolge der Stücknamen und fügen Sie sie dann zusammen.

cat archive-part-* > archive-restored.bin

Überprüfung der Dateien, die nach dem Aufteilen erstellt wurden

Der folgende Befehl teilt vier Zeilen in jeweils zwei Zeilen auf. Da part-aa und part-ab im aktuellen Verzeichnis erstellt werden, versuchen Sie es in einem leeren Arbeitsverzeichnis.

printf 'a\nb\nc\nd\n' | split -l 2 - part-
cat part-aa
cat part-ab

Ein Beispiel für die Anzeige des Inhalts der beiden Dateien in Reihenfolge:

a
b
c
d

split selbst druckt die Dateinamen nicht aus. Wenn Dateien mit demselben Namen bereits existieren, können sie überschrieben werden, also setzen Sie ein eindeutiges Präfix. Um sie in der ursprünglichen Reihenfolge zu kombinieren, listen Sie die Dateinamen in der richtigen Reihenfolge auf und verwenden cat part-* > restored_file, dann überprüfen Sie die Größe oder Prüfsumme des wiederhergestellten Ergebnisses.

Hauptoptionen und Format

Optionen/Format Beschreibung
-l N Setzen Sie N Zeilen in jede Datei.
-b size Geben Sie die maximale Bytegröße jedes Teils an.
-d Verwenden Sie numerische Suffixe.
-a N Geben Sie die Suffixlänge als N Zeichen an.
--additional-suffix=value Fügen Sie dem Ende des geteilten Dateinamens eine zusätzliche Zeichenfolge hinzu.

Vorsichtsmaßnahmen bei der Verwendung

split -b kann sogar mitten in Textzeilen teilen. Um Zeilen zu erhalten, überprüfen Sie das Verhalten von -l oder GNU -C. Beim Zusammenführen der Teile ist es sicher, nur die Dateien mit dem entsprechenden Präfix auszuwählen und mit dem Original mithilfe eines Hashes zu vergleichen.

Häufig gestellte Fragen

Löscht split die ursprüngliche Datei?

Nein. Die Eingabedatei bleibt unverändert, und neue Teildateien werden erstellt.

Offizielle Dokumentation

Das genaue Verhalten der Optionen und die Unterschiede zwischen den Implementierungen können in der offiziellen Dokumentation für split nachgelesen werden.