Linux-Befehle · 3 min read · Sep 14, 2025

Linux Csplit-Befehl für Anfänger erklärt (6 Beispiele)

Der Linux csplit-Befehl ist ein vielseitiges Dienstprogramm, das verwendet wird, um eine Datei in mehrere Segmente basierend auf angegebenen Kontextzeilen oder Mustern zu teilen. Im Gegensatz zum split-Befehl, der Dateien basierend auf der Größe teilt, ermöglicht csplit den Benutzern, Teilungspunkte mithilfe von Zeilennummern, regulären Ausdrücken oder einer Kombination aus beidem zu definieren, was es ideal für die Verarbeitung von Textdateien mit einer vorhersehbaren Struktur macht. Der Befehl erzeugt Ausgabedateien, die sequenziell benannt werden, mit einem Standardpräfix und numerischen Suffixen, die angepasst werden können. Diese Flexibilität ist besonders nützlich für Aufgaben wie das Extrahieren von Abschnitten aus Protokolldateien, das Aufteilen von Konfigurationsdateien oder das Vorbereiten von Textdaten zur Verarbeitung durch andere Skripte oder Anwendungen.

In diesem Tutorial werden wir die Grundlagen dieses Werkzeugs besprechen und lernen, wie man es verwendet. Aber bevor wir das tun, ist es erwähnenswert, dass alle hier genannten Befehle/Anweisungen auf Ubuntu 24.04 getestet wurden.

Linux Csplit-Befehl

So definiert die Man-Seite des Befehls:

csplit - eine Datei in Abschnitte unterteilt, die durch Kontextzeilen bestimmt werden

Folgendes ist die allgemeine Syntax:

csplit [OPTION]... DATEI MUSTER...

Die einzelnen kleinen Dateien, die von csplit erstellt werden, haben Namen wie xx00 und xx01. Die folgende Definition - entnommen aus der Man-Seite des Befehls - sollte die Dinge klarer machen:

Ausgabe von Teilen der DATEI, die durch MUSTER getrennt sind, in Dateien 'xx00', 'xx01', ..., und Ausgabe der Byteanzahl jedes Teils an die Standardausgabe.

Die folgenden Beispiele im Frage-Antwort-Stil sollten Ihnen eine gute Vorstellung davon geben, wie der csplit-Befehl funktioniert.

Q1. Wie teilt man Dateien basierend auf der Anzahl der Zeilen?

Angenommen, Ihre Datei enthält sechs Zeilen, und die Anforderung besteht darin, diese Datei an der dritten Zeile zu teilen. Dies kann erreicht werden, indem ‘3’ als Befehlszeilenargument nach dem Befehl und dem Dateinamen übergeben wird.

Zum Beispiel enthielt in unserem Fall die Datei1 die folgenden Zeilen:

1       Asien  
2      Afrika  
3      Europa  
4   Nordamerika  
5   Südamerika  
6      Australien

Und hier ist der Befehl, den wir ausgeführt haben:

csplit datei1 3

Die im Output erzeugten Zahlen sind die Byteanzahl für die Dateien, die der Befehl erzeugt hat. Es wurden zwei Dateien im Output erzeugt, nämlich xx00 und xx01.

Der Inhalt dieser Dateien bestätigt, dass die Teilung an der Zeilennummer 3 stattgefunden hat.

Q2. Wie teilt man Dateien mithilfe von regulären Ausdrücken?

Sie können auch reguläre Ausdrücke mit dem csplit-Befehl verwenden. Zum Beispiel, im vorherigen Fall, wenn Sie möchten, dass das Werkzeug das Muster ein weiteres Mal wiederholt, können Sie dies mit dem folgenden Befehl tun:

csplit datei1 3 {1}

In diesem Fall wurden drei Ausgabedateien erzeugt:

Dateien mit regulären Ausdrücken teilen

Q3. Wie hat man ein benutzerdefiniertes Präfix anstelle des Standardpräfixes ‘xx’?

Standardmäßig haben die Dateien, die csplit im Output erzeugt, ‘xx’ als Präfix. Wenn Sie möchten, können Sie das Präfix mit der Befehlszeilenoption -f ändern, die das neue Präfix als Eingabe benötigt.

Zum Beispiel wird der folgende Befehl Dateien mit ‘htf’ als Präfix erzeugen.

csplit datei1 1 -f htf

Q4. Wie zwingt man csplit, die Ausgabedateien im Fehlerfall nicht zu löschen?

Der csplit-Befehl entfernt standardmäßig die Ausgabedateien (alle, die erstellt wurden), sobald ein Fehler auftritt. Zum Beispiel bestätigt der folgende Screenshot, dass keine Ausgabedatei letztendlich erzeugt wurde:

Sie können dieses Verhalten jedoch ändern, indem Sie die Option - k im Befehl verwenden. Zum Beispiel wurde derselbe Befehl erneut ausgeführt, aber mit dieser Option, und die Ausgabedateien wurden diesmal nicht gelöscht.

Q5. Wie unterdrückt man Zeilen, die dem Eingabemuster entsprechen?

Der csplit-Befehl ermöglicht auch das Unterdrücken von Zeilen, die dem Eingabemuster entsprechen. Die betreffende Option ist –suppress-matched.

Zum Beispiel teilt der folgende Befehl die Datei (datei1) an Zeile 2 (xx00 enthält Zeile 1, während xx11 den Rest der Zeilen enthält).

csplit datei1 2

Wenn Sie jedoch Zeile 2 unterdrücken möchten, können Sie den folgenden Befehl ausführen:

csplit --suppress-matched datei1 2

Q6. Wie verwendet man eine benutzerdefinierte Anzahl von Ziffern anstelle der Standardzahl 2?

Genau wie das Präfix selbst ist auch die Anzahl der Ziffern, die dem Präfix in den Ausgabedateinamen folgen, anpassbar. Angenommen, Sie möchten Namen wie xx000 und xx0001 haben, können Sie dies mit der Befehlszeilenoption -n tun, die eine Eingabezahl benötigt, die die neue Anzahl von Ziffern angibt.

Zum Beispiel:

csplit -n 1 datei1 2

Der obige Befehl würde Dateinamen wie xx0, xx1 usw. erzeugen.

Fazit

Ein durchschnittlicher Linux-Befehlszeilenbenutzer benötigt möglicherweise nicht täglich eine Teilung, aber es ist ein wichtiges Dienstprogramm, das Sie zumindest kennen sollten. Wir haben hier die meisten grundlegenden Beispiele und Befehlszeilenoptionen behandelt. Probieren Sie sie aus und gehen Sie dann zur Man-Seite des Werkzeugs, um mehr darüber zu erfahren.

Share: X/Twitter LinkedIn

Erhalte neue Beiträge in deinem Posteingang.

Kein Spam. Jederzeit abmelden.