zurück

csplit [optionen] datei trennposition

csplit zerlegt eine Textdatei an vorgegebenen Stellen in mehrere Einzeldateien.

Die Trennposition kann entweder durch eine direkte Zeilenangabe oder durch ein Suchmuster angegeben werden.
Das Kommando liefert als Ergebnis die Dateien xx00, xx01 etc. und gibt am Bildschirm deren Längen aus.
Durch Angabe entsprechender Optionen sind natürlich auch andere Dateinamen möglich.
Durch cat kann aus diesen Einzeldateien wieder die Originaldatei zusammengesetzt werden (siehe auch cat, split).

Die Trennpositionen werden entweder durch eine Zeilenanzahl oder durch  ein Suchmuster angegeben.
Im einen Fall wird die Datei nach n Zeilen zerlegt, im anderen Fall vor oder nach dem Auftreten des Suchmusters.

Wenn csplit die Datei mehrfach zerlegen soll, muß hinter der Zeilenanzahl bzw. dem Trennmuster angegeben werden, wie oft die Operation wiederholt werden soll.

n
trennt die Datei nach n Zeilen.
/muster/
trennt die Datei in der Zeile vor dem Auftreten des Musters. (Die Zeile mit dem gefundenen Muster ist die erste Zeile der neuen Datei.)
/muster/+n
trennt die Datei n Zeilen nach dem Auftreten des Musters.
/muster/-n
trennt die Datei n Zeilen vor dem Auftreten des Musters.
{n}
zerlegt die Datei in n+1 Einzeldateien (und nicht nur in zwei Dateien).

Optionen:
-f datei
verwendet den angebebenen Dateinamen zur Benennung der Ausgabedateien.
-k
bereits erzeugte Dateien werden beim Auftreten eines Fehlers nicht wieder gelöscht. Die Option muß insbesondere bei Musterangaben in der Form n {*} verwendet werden. Die Musterangabe erfolgt wie bei grep (siehe auch grep).
-z
verhindert die Erzeugung leerer Dateien. Ohne diese Option können leere Dateien insbesondere dann auftreten, wenn bereits die erste Zeile der Ausgangsdatei dem Suchmuster entspricht.
Bsp:
csplit -k -f teil. total.txt 100 {*}
zerlegt total.txt in die Dateien teil.00, teil.01 usw. Die Einzeldateien sind jeweils 100 Zeilen lang
csplit -k -f teil. total.txt '/^%---/' {*}
wie oben, allerdings erfolgt die Trennung immer dann, wenn eine Zeile mit dem Text '%---' beginnt.

zurück