• Allgemein
  • Teilen von Dateien unter Linux: Der Befehl ’split‘

Teilen von Dateien unter Linux: Der Befehl ’split‘

Was ist der Befehl ’split‘?

Der Befehl split ist ein vielseitiges Werkzeug, das in Linux zum Aufteilen großer Dateien in kleinere, überschaubarere Teile verwendet wird. Er bietet eine Reihe von Optionen, mit denen du die Größe und Anzahl der erstellten Teile anpassen kannst.

Vorteile und Verwendung

split ist besonders nützlich in folgenden Szenarien:

  • Verteilung großer Dateien über beschränkte Datenträger: Du kannst eine große Datei in kleinere Teile aufteilen, um sie auf mehrere USB-Laufwerke oder DVDs unterzubringen.
  • Verarbeitung großer Datenmengen in parallel: Du kannst eine große Datei in kleinere Teile aufteilen, um sie von mehreren Computern oder Prozessen gleichzeitig verarbeiten zu lassen.
  • Erstellen von Sicherungen in mehreren Teilen: Du kannst eine wichtige Datei in mehrere Teile aufteilen, um sicherzustellen, dass du im Falle eines Datenverlusts nicht die gesamte Datei verlierst.

Wie wird der Befehl ’split‘ verwendet?

Der Befehl split ist ein vielseitiges Werkzeug, mit dem du große Dateien in kleinere, überschaubarere Teile aufteilen kannst. Du kannst ihn für verschiedene Zwecke einsetzen, beispielsweise zum Aufteilen großer Dateien für die Speicherung auf mehreren Datenträgern oder zum Aufteilen von Protokolldateien für eine einfachere Analyse.

Grundlegende Syntax

Die grundlegende Syntax des Befehls split lautet:

split [Optionen] <Eingabedatei> <Ausgabedateipräfix>

Du legst die Eingabedatei fest, die du aufteilen möchtest, und den Ausgabedateipräfix, der für die Benennung der resultierenden Teilungsdateien verwendet wird.

Aufteilen von Dateien in mehrere gleich große Teile

Um eine Datei in Teile mit einer bestimmten Bytegröße aufzuteilen, verwende die Option -b. Beispielsweise teilt der folgende Befehl eine Datei namens file.txt in Teile mit jeweils 1 MB Größe auf:

split -b 1m file.txt part-

Dies erstellt Teilungsdateien mit den Namen part-aa, part-ab, part-ac usw.

Aufteilen von Dateien in Teile mit einer bestimmten Größe

Du kannst Dateien auch in Teile mit einer bestimmten Anzahl von Bytes aufteilen. Verwende dazu die Option -c gefolgt von der Anzahl der Bytes. Der folgende Befehl teilt beispielsweise file.txt in Teile mit jeweils 500 Bytes auf:

split -c 500 file.txt part-

Aufteilen von Dateien in Teile mit einer bestimmten Anzahl von Zeilen

Wenn du eine Datei in Teile mit einer bestimmten Anzahl von Zeilen aufteilen möchtest, verwende die Option -l. Der folgende Befehl teilt beispielsweise file.txt in Teile mit jeweils 100 Zeilen auf:

split -l 100 file.txt part-

Optionen des Befehls ’split‘

Der Befehl ’split‘ bietet eine Reihe von Optionen, mit denen du die Aufteilung deiner Dateien anpassen kannst. Hier sind einige der wichtigsten Optionen:

-b (Blockgröße)

Verwendet diese Option, um die maximale Größe jedes Teils in Bytes anzugeben. Diese Option ist nützlich, wenn du Dateien in Teile aufteilen möchtest, die auf bestimmte Speichermedien wie DVDs oder CDs passen. Beispiel:

split -b 700M große_datei

-C (Zeilenkontext)

Mit dieser Option kannst du angeben, wie viele Zeilen im Kontext vor und nach der Teilungsstelle beibehalten werden sollen. Dies ist hilfreich, wenn du sicherstellen möchtest, dass Kontextinformationen in allen Teilen vorhanden sind. Beispiel:

split -C 5 große_datei

-d (Ausgabeverzeichnis)

Verwendet diese Option, um das Standardausgabeverzeichnis für die geteilten Dateien anzugeben. Beispiel:

split -d /ausgabeverzeichnis große_datei

-l (Zeilenanzahl)

Teilt die Datei in Teile mit der angegebenen Anzahl von Zeilen. Dies ist nützlich, wenn du Dateien in gleich große, textbasierte Teile aufteilen möchtest. Beispiel:

split -l 1000 große_datei

-p (Präfix)

Verwendet diese Option, um das Präfix für die Namen der geteilten Dateien anzugeben. Beispiel:

split -p teil_ große_datei

Beispiel für die Verwendung des Befehls ’split‘

Angenommen, du hast eine große Textdatei namens dokument.txt und möchtest sie in fünf kleinere Dateien aufteilen.

Aufteilen in gleich große Teile

Führe den Befehl wie folgt aus:

split -l 2000 dokument.txt datei-

Dadurch werden fünf Ausgabedateien mit jeweils ca. 2000 Zeilen erstellt:

  • datei-00
  • datei-01
  • datei-02
  • datei-03
  • datei-04

Aufteilen in Teile mit einer bestimmten Größe

Möchtest du die Dateien in Teile mit bestimmter Größe aufteilen, verwende die Option -b gefolgt von der Größe. Beispielsweise werden die folgenden Befehl fünf Dateien mit jeweils 500 KB erzeugen:

split -b 500k dokument.txt datei-

Aufteilen in Teile mit einer bestimmten Anzahl von Zeilen

Um die Dateien in Teile mit einer bestimmten Anzahl von Zeilen aufzuteilen, verwende die Option -n. Beispielsweise werden die folgenden Befehl fünf Dateien mit jeweils 100 Zeilen erzeugen:

split -n 100 dokument.txt datei-

Aufteilen von Dateien in mehrere gleich große Teile

Möchtest du eine große Datei in mehrere kleinere Teile aufteilen, die alle die gleiche Größe haben? Der Befehl split macht genau das.

Syntax

Um eine Datei in gleich große Teile aufzuteilen, verwendest du die folgende Syntax:

split [Optionen] <Eingabedatei> <Ausgabepräfix>

Optionen

Verwende die folgenden Optionen, um die Aufteilung anzupassen:

  • -b: Teilt die Datei in Teile einer bestimmten Größe in Bytes auf. Beispiel: -b 1000000 teilt die Datei in Teile von jeweils 1 MB auf.
  • -C: Teilt die Datei in Teile einer bestimmten Anzahl von Zeilen auf. Beispiel: -C 1000 teilt die Datei in Teile mit jeweils 1000 Zeilen auf.
  • -d: Löscht die Eingabedatei, nachdem die Aufteilung abgeschlossen ist.

Beispiel

Angenommen, du hast eine Datei namens große_datei.txt und möchtest sie in gleich große Teile von 10 MB aufteilen. Verwende den folgenden Befehl:

split -b 10000000 große_datei.txt teil_

Dadurch werden die Teile teil_aa, teil_ab, teil_ac usw. im aktuellen Verzeichnis erstellt.

Aufteilen von Dateien in Teile mit einer bestimmten Größe

Wenn du eine Datei in Teile einer bestimmten Größe aufteilen möchtest, verwende die folgenden Schritte:

Syntax

split -b <Größe> <Eingabedatei> <Ausgabedateiprefix>

wobei:

  • -b <Größe> die Größe jedes Teils in Bytes angibt.
  • <Eingabedatei> der Name der aufzuteilenden Datei ist.
  • <Ausgabedateiprefix> der Präfix für die Namen der Ausgabedateien ist.

Beispiel

Nehmen wir an, du hast eine Datei namens große_datei.txt und möchtest sie in Teile von je 10 MB aufteilen. Du kannst dies mit folgendem Befehl tun:

split -b 10m große_datei.txt dateiprefix

Dies erstellt eine Reihe von Dateien namens dateiprefixa00, dateiprefixa01, dateiprefixa02 usw., die jeweils 10 MB groß sind.

Zusätzliche Optionen

Die Option -d entfernt das Präfix aus den Namen der Ausgabedateien.

Die Option -n kann verwendet werden, um die Anzahl der Teile anzugeben, in die die Datei aufgeteilt werden soll.

Aufteilen von Dateien in Teile mit einer bestimmten Anzahl von Zeilen

Wenn du eine große Datei in kleinere Teile mit einer bestimmten Anzahl von Zeilen aufteilen möchtest, kannst du den Befehl split wie folgt verwenden:

Option -l

Verwende die Option -l, um die Anzahl der Zeilen pro Teil festzulegen.

split -l <Anzahl_Zeilen> <Eingabedatei> <optional: Ausgabedateinamen-Präfix>

Beispiel:

split -l 100 große_datei kleinteil_

Dies teilt die Datei große_datei in Teile mit jeweils 100 Zeilen auf. Die Ausgabedateien werden mit dem Präfix kleinteil_ benannt, gefolgt von einer fortlaufenden Nummer.

Sortierte Ausgabe

Wenn du eine sortierte Ausgabe wünschst, kannst du die Option -a verwenden. Diese Option fügt einen Buchstaben an den Ausgabedateinamen an, um die Reihenfolge der Teile zu kennzeichnen.

split -l 100 -a 1 große_datei kleinteil_

Dies erzeugt die Ausgabedateien kleinteil_a, kleinteil_b usw.

Option -C

Alternativ kannst du die Option -C verwenden, um die maximale Größe jeder Ausgabedatei in Bytes festzulegen. Die Anzahl der Zeilen in jeder Datei kann je nach Inhalt der Datei variieren.

split -C <Größe_in_Bytes> <Eingabedatei> <optional: Ausgabedateinamen-Präfix>

Tipps

  • Wenn du keinen Ausgabedateinamen-Präfix angibst, werden die Ausgabedateien mit dem Namen xaa, xab usw. benannt.
  • Du kannst die Ausgabedateien nach dem Aufteilen mit dem Befehl cat kombinieren.

Kombinieren von gesplitteten Dateien

Sobald du deine Dateien in kleinere Teile aufgeteilt hast, kannst du sie wieder zu einer einzigen Datei zusammenfügen. Mit dem Befehl cat kannst du die Teile einfach aneinanderhängen:

cat splitFile* > combinedFile

In diesem Beispiel werden alle Dateien mit dem Präfix splitFile zusammengefügt und in der Datei combinedFile gespeichert.

Umbenennen gesplitteter Dateien

Wenn du die gesplitteten Dateien umbenannt hast, musst du sie vor dem Zusammenfügen wie folgt umwandeln:

  1. Erstelle eine Liste der Teilenamen:
ls splitFile*
  1. Schließe die Listenelemente mit Leerzeichen an:
splitFile00 splitFile01 splitFile02
  1. Verwende die umgewandelten Namen im Befehl cat:
cat splitFile00 splitFile01 splitFile02 > combinedFile

Unterstützte Dateiformate

cat unterstützt das Zusammenfügen von Textdateien. Für andere Dateiformate, wie z. B. Binärdateien oder komprimierte Archive, musst du möglicherweise spezielle Tools verwenden, die für das jeweilige Dateiformat entwickelt wurden.

Automatisierte Skripte

Wenn du häufig Dateien aufteilen und wieder zusammenführen musst, kannst du ein automatisiertes Skript erstellen, das die Schritte ausführt. Mit find und xargs kannst du beispielsweise Dateien nach einem bestimmten Muster finden und sie dann mit cat zusammenfügen:

find . -name 'splitFile*' | xargs cat > combinedFile