Your Browser is not longer supported

Please use Google Chrome, Mozilla Firefox or Microsoft Edge to view the page correctly
Loading...

{{viewport.spaceProperty.prod}}

split - Datei auf mehrere Dateien verteilen

&pagelevel(4)&pagelevel

(split files into pieces)


split teilt Dateien in kleinere Abschnitte auf. Die Abschnitte schreibt split in einzelne Ausgabedateien. Die ursprüngliche Datei bleibt erhalten. Die Ausgabedateien werden automatisch „durchnummeriert“; dazu verwendet split ein Suffix aus zwei Kleinbuchstaben (aa, ab ... zz) aus der aktuellen internationalen Umgebung. Die letzte Datei enthält den Rest der Eingabedatei und kann weniger Zeilen enthalten als vorgegeben.

Werden mehr Ausgabedateien benötigt als durch die verwendete Suffixlänge möglich, schreibt split die letzte Datei nicht (da diese mehr Zeilen enthalten würde, als vorgegeben) und beendet sich mit einem Endestatus >0. Die bereits angelegten Dateien werden nicht gelöscht.


Syntax


Format 1: split -b byte[ -a zahl][ datei[ name]]
Format 2: split[ -l zeilen][ -a zahl][ datei[ name]]
Format 3: split[ zeilen][ -a zahl][ datei[ name]]

Keine Option angegeben

Die Ausgabedateien heißen xaa, xab usw. bis xzz in lexikographischer Reihenfolge. In diesem Fall legt split höchstens 676 Ausgabedateien an.



Format 1: split -b byte[ -a zahl][ datei[ name]]


-a zahl

Das Suffix für die Ausgabedatei besteht aus zahl Buchstaben. Z.B. erzeugt -a 4 die Ausgabedateien xaaaa, xaaab usw. bis xzzzz.
Die maximale Anzahl theoretisch möglicher Dateinamen beträgt also 26zahl für 0<zahl<8. Ist zahl>7, wird UINT_MAX angenommen.

-a nicht angegeben:
Das Suffix besteht aus 2 Buchstaben.

-b byte

split teilt die Eingabedatei in Abschnitte der Größe byte. byte können Sie wie folgt angeben:

nals Anzahl Byte
nkals Vielfaches von 1024 Byte
nmals Vielfaches von 1048576 Byte

datei

Name der Eingabedatei, die aufgeteilt werden soll.
Wenn Sie für datei einen Bindestrich - angeben, liest split von der Standard-Eingabe.

datei nicht angegeben:
split liest von der Standard-Eingabe.

name

Name der Ausgabedateien: Die erste Ausgabedatei erhält den Namen name aa, die zweite den Namen name ab usw. bis name zz. name muss deshalb um zwei Zeichen kürzer sein (bzw. um zahl Zeichen bei Angabe von -a), als die im jeweiligen Dateisystem zugelassene maximale Dateinamenslänge ({NA ME_MAX} Bytes).

Wenn Sie einen Wert für name angeben, dann müssen Sie auch einen Wert für datei
angeben.



Format 2: split[ -l zeilen][ -a zahl][ datei[ name]]
Format 3: split[ zeilen][ -a zahl][ datei[ name]]


-l zeilen

split teilt die Eingabedatei in Abschnitte zu je zeilen Zeilen auf. Dies entspricht der alten Option zeilen, die weiterhin unterstützt wird.

-l nicht angegeben:
split teilt die Eingabedatei in Abschnitte zu je 1000 Zeilen auf.

-a zahl

Das Suffix für die Ausgabedatei besteht aus zahl Buchstaben. Z.B. erzeugt -a 4 die Ausgabedateien xaaaa, xaaab usw. bis xzzzz.
Die maximal Anzahl theoretisch möglicher Dateinamen beträgt also 26zahl für 0<zahl<8. Ist zahl>7, wird UINT_MAX angenommen.

-a nicht angegeben:
Das Suffix besteht aus 2 Buchstaben.

datei

Name der Eingabedatei, die aufgeteilt werden soll.

Wenn Sie für datei einen Bindestrich - angeben, liest split von der Standard-Eingabe.

datei nicht angegeben:
split liest von der Standard-Eingabe.

name

Name der Ausgabedateien: Die erste Ausgabedatei erhält den Namen name aa, die zweite den Namen name ab usw. bis name zz. name muss deshalb um zwei Zeichen kürzer sein (bzw. um zahl Zeichen bei Angabe von -a), als die im jeweiligen Dateisystem zugelassene maximale Dateinamenslänge ({NA ME_MAX} Bytes).

Wenn Sie einen Wert für name angeben, dann müssen Sie auch einen Wert für datei angeben.

Internationale Umgebung

Die folgenden Umgebungsvariablen beeinflussen die Ausführung des Kommandos split:

LANG

Gibt einen Standardwert für die Variablen für die internationale Umgebung an, die nicht gesetzt oder Null sind. Ist LANG nicht gesetzt oder Null, wird der entsprechende Standardwert der internationalen Umgebung verwendet. Enthält eine der Internationalisierungsvariablen eine ungültige Einstellung, verhält sich das Kommando so, als sei keine der Variablen definiert worden.

LC_ALL

Ist diese Variable auf einen Wert gesetzt, d. h. ist sie nicht leer, überschreibt dieser Wert die Werte aller übrigen Internationalisierungsvariablen.

LC_CTYPE

Legt die internationale Umgebung für die Interpretation der Byte-Folgen eines Datentexts als Zeichen fest (z.B. Singlebytezeichen im Unterschied zu Mehrbytezeichen in Argumenten und Eingabedateien) sowie die Einteilung der Zeichen in Groß- und Kleinbuchstaben und deren Übereinstimmung.

LC_MESSAGES

Legt die internationale Umgebung für Format und Inhalt der Diagnosemeldungen fest, die in die Standardfehlerausgabe geschrieben werden.

NLSPATH

Legt den Pfad der Meldungsdateien für LC_MESSAGES fest.

Beispiel 1

Der Inhalt der Datei beispiel soll zu je 20 Zeilen auf verschiedene Dateien verteilt werden:

$ split -l 20 beispiel
$ ls

beispiel

xaa

xab

xac

xad

Beispiel 2

Je zwei Zeilen der Standard-Eingabe sind in Dateien namens aus zu schreiben. Da Sie den
Namen der Ausgabedateien mit aus explizit angeben, darf der Bindestrich für Standard-Eingabe
nicht fehlen!

$ split -l 2 - aus

Was wahr ist, war immer wahr

und wird immer wahr bleiben.

Was aber nicht wahr ist, war nie wirklich

und wird nie wirklich werden.

CTRL+D

$ ls

ausaa

ausab

Siehe auch

csplit