Befehl "csplit"

Zweck

Teilt eine Datei in einzelne Dateien auf.

Syntax

CSplit-f Präfix ] [  -k ] [  -n Zahl ] [  -s ] Dateiargument ...

Beschreibung

Der Befehl csplit kopiert die angegebene Datei und teilt die Kopie in Segmente auf. Die ursprüngliche Eingabedatei, die unverändert bleibt, muss eine Textdatei sein.

Der Befehl csplit schreibt die Segmente in Dateien xx00 ..xx99, je nachdem, wie oft der Parameter Argument angegeben wird (99 ist das Maximum). Standardmäßig erwartet der Parameter Argument eine Zeilennummer. Die folgenden Regeln gelten, wenn Sie mehrere Zeilennummern angeben:

  • Datei xx00 enthält die Zeilen vom Anfang der ursprünglichen Datei bis zur Zeilennummer, die im ersten Parameter Argument angegeben ist, aber nicht einschließlich.
  • Datei xx01 enthält Zeilen, die mit der Nummer beginnen, die durch den ersten Parameter Argument angegeben wird, jedoch nicht einschließlich, Die Zeile, auf die der zweite Parameter Argument verweist. Jede als Argument angegebene Zeilennummer markiert den Anfang einer neuen Datei.
  • Datei xxnn (die zuletzt erstellte Datei) enthält Zeilen, die mit der im letzten Parameter Argument angegebenen Anzahl bis zum Ende der Datei beginnen.

Angenommen, die ursprüngliche Datei enthält 108 Zeilen und Sie geben Folgendes ein:

csplit orginal.txt 11 72 98

In diesem Fall erstellt der Befehl csplit vier Dateien: Die Datei xx00 enthält die Zeilen 1-10, die Datei xx01 die Zeilen 11-71, die Datei xx02 die Zeilen 72-97 und die Datei xx03 die Zeilen 98-108.

Der Parameter Argument kann auch die folgenden Symbole und Musterzeichenfolgen enthalten:

Element Beschreibung
/Muster/ Erstellt eine Datei, die das Segment von der aktuellen Zeile bis zu, aber nicht einschließlich, der Zeile enthält, die das angegebene Muster enthält. Die Zeile mit dem Muster wird zur aktuellen Zeile.
%Muster% Macht die Zeile mit dem angegebenen Muster zur aktuellen Zeile, erstellt jedoch keine Datei für das Segment.
+Zahl Rückt um die angegebene Anzahl von Zeilen ab der Zeile, die dem vorhergehenden Muster entspricht, vor. Beispiel:/Page/+5Sucht nachPage, dann werden 5 Zeilen angezeigt.
-Zahl Geht um die angegebene Anzahl von Zeilen ab der Zeile, die dem vorhergehenden Muster entspricht, zurück. Beispiel:/Page/-5Sucht nachPage, dann werden 5 Zeilen gesichert.
{Anzahl} Wiederholt die vorhergehende Option so oft wie angegeben. Dieser Parameter kann hinter jedem Muster oder jeder Zeilennummer angegeben werden. Wenn er hinter einem Muster angegeben wird, verwendet der Befehl csplit das Muster so oft wie angegeben wieder. Wenn es einer Zeilennummer folgt, teilt der Befehl csplitdie Datei von diesem Punkt an für die Anzahl der Zeilen, die durch die Zeilennummer angegeben werden.

Schließen Sie alle Muster, die Leerzeichen oder andere Shellsonderzeichen enthalten, in Anführungszeichen ein. Muster dürfen keine eingebetteten Zeilenumbrüche enthalten. In einem Ausdruck wie z. B.[a-z], bedeutet das Minuszeichen (-) entsprechend der aktuellen Sortierfolge bis. Eine Sortierfolge kann Äquivalenzklassen für Zeichenbereiche definieren.

Flags

Element Beschreibung
-f Präfix Gibt das Präfix an, das für die erstellten Dateisegmente verwendet werden soll. Der Standardwert für diese Variable ist xx.
-k Lässt die erstellten Dateisegmente im Falle eines Fehlers unberührt.
-n Anzahl Ändert die Anzahl der Dezimalstellen, die in den erstellten Dateinamen verwendet werden. Der Standardwert sind zwei Dezimalstellen oder xx00 ... xx99. Wenn Sie beispielsweise das Flag -n 4 angeben, erhalten neue Dateien den Namen xx0000 . xx0099.
-s Unterdrückt die Anzeige von Zeichenzählern.

Exitstatus

Dieser Befehl gibt die folgenden Exitwerte zurück:

Element Beschreibung
0 Erfolgreiche Ausführung.
>0 Es ist ein Fehler aufgetreten.

Beispiele

  1. So teilen Sie den TextbookGeben Sie in eine separate Datei für jedes Kapitel Folgendes ein:
    csplit book "/^ Chapter *[k.0-9]k./" {9}
    Dieser Befehl erstellt 10 Dateien, xx00 bis xx09. Die Datei xx00 enthält die Titelei, die dem ersten Kapitel vorangeht. Die Dateien xx01 bis xx09 enthalten jeweils einzelne Kapitel. Jedes Kapitel beginnt mit einer Zeile, die nur das Wort enthältChapterund die Kapitelnummer.
  2. Präfix angebenchapfür die Dateien, die ausbook, geben Sie Folgendes ein:
    csplit  -f chap book "/^ Chapter *[k.0-9]k./" {9}
    Diese Aufteilungbookin Dateien mit dem Namen chap00 bis chap09.

Dateien

Element Beschreibung
/usr/bin/csplit Enthält den Befehl csplit.