GNU/Linux >> LINUX-Kenntnisse >  >> Linux

9 Nützliche Beispiele für den Split-Befehl in Linux

Um Ihnen beim Erlernen des Split-Befehls zu helfen, verwende ich eine relativ große Textdatei mit 17170 Zeilen und einer Größe von 1,4 MB. Sie können eine Kopie dieser Datei vom GitHub-Link herunterladen.

Beachten Sie, dass ich die Ausgabe in diesen Beispielen aufgrund der großen Dateigrößen nicht direkt anzeigen werde. Ich werde die Befehle ll und wc verwenden, um Dateiänderungen hervorzuheben.

Ich rate Ihnen, einen kurzen Blick auf den wc-Befehl zu werfen, um die Ausgabe der split-Befehlsbeispiele zu verstehen.

Beispiele für den Split-Befehl in Linux

Dies ist die Syntax des Split-Befehls:

split [options] filename [prefix]

Sehen wir uns an, wie man damit Dateien unter Linux aufteilt.

1. Dateien in mehrere Dateien aufteilen

Standardmäßig erstellt der Split-Befehl alle 1000 Zeilen neue Dateien. Wenn kein Präfix angegeben ist, wird „x“ verwendet. Die folgenden Buchstaben zählen die Dateien auf, daher kommt zuerst xaa, dann xab und so weiter.

Lassen Sie uns die Beispielprotokolldatei aufteilen:

split someLogFile.log

Wenn Sie den Befehl ls verwenden, können Sie mehrere neue Dateien in Ihrem Verzeichnis sehen.

[email protected]:~/Documents$ ls
someLogFile.log  xab  xad  xaf  xah  xaj  xal  xan  xap  xar
xaa              xac  xae  xag  xai  xak  xam  xao  xaq

Sie können wc verwenden, um die Zeilenanzahl nach dem Teilen schnell zu überprüfen.

[email protected]:~/Documents$ wc -l xaa xaq xar
1000 xaa
1000 xaq
170 xar

Denken Sie daran, dass wir früher gesehen haben, dass unsere ursprüngliche Datei 17.170 Zeilen hatte. Wir können also sehen, dass unser Programm wie erwartet ausgeführt wurde, indem 18 neue Dateien erstellt wurden. 17 davon sind mit jeweils 1000 Zeilen gefüllt, und die letzte hat die restlichen 170 Zeilen.

Eine andere Möglichkeit, wie wir demonstrieren können, was passiert, besteht darin, den Befehl mit der Option verbose auszuführen. Wenn Sie mit wortreich nicht vertraut sind, verpassen Sie etwas! Es bietet detailliertere Rückmeldungen darüber, was Ihr System tut, und kann mit vielen Befehlen verwendet werden.

split someLogFile.log --verbose

Sie können sehen, was mit Ihrem Befehl auf dem Display los ist:

creating file 'xaa'
creating file 'xab'
creating file 'xac'
creating file 'xad'
creating file 'xae'
creating file 'xaf'
creating file 'xag'
creating file 'xah'
creating file 'xai'
creating file 'xaj'
creating file 'xak'
creating file 'xal'
creating file 'xam'
creating file 'xan'
creating file 'xao'
creating file 'xap'
creating file 'xaq'
creating file 'xar'

2. Dateien in mehrere Dateien mit bestimmten Zeilennummern aufteilen

Ich verstehe, dass es Ihnen vielleicht nicht gefällt, dass Dateien in Dateien mit 1000 Zeilen aufgeteilt werden. Sie können dieses Verhalten mit -l ändern Option.

Wenn dies hinzugefügt wird, können Sie nun angeben, wie viele Zeilen Sie in jeder der neuen Dateien haben möchten.

split someLogFile.log -l 500

Wie Sie sich denken können, haben die geteilten Dateien jetzt jeweils 500 Zeilen, mit Ausnahme der letzten.

[email protected]:~/Documents$ wc -l xbh xbi
500 xbh
170 xbi

Jetzt haben Sie viel mehr Dateien, aber mit jeweils halb so vielen Zeilen.

3. Teilen Sie die Dateien in n Dateien auf

Das -n Option macht das Aufteilen in eine bestimmte Anzahl von Stücken oder Stücken einfach. Sie können die Anzahl der gewünschten Dateien zuweisen, indem Sie nach -n einen ganzzahligen Wert hinzufügen.

split someLogFile.log -n 15

Jetzt können Sie sehen, dass es 15 neue Dateien gibt.

[email protected]:~/Documents$ ls
someLogFile.log  xaa  xab  xac  xad  xae  xaf  xag  xah  xai  xaj  xak  xal  xam  xan  xao

4. Split-Dateien mit benutzerdefiniertem Namenspräfix

Was ist, wenn Sie Split verwenden, aber den ursprünglichen Namen meiner Datei beibehalten oder einen neuen Namen erstellen möchten, anstatt „x“ zu verwenden?

Sie erinnern sich vielleicht, dass Sie das Präfix als Teil der am Anfang des Artikels beschriebenen Syntax gesehen haben. Sie können Ihren eigenen benutzerdefinierten Dateinamen nach der Quelldatei schreiben.

split someLogFile.log someSeparatedLogFiles.log_

Hier sind die Split-Dateien, deren Namen mit dem angegebenen Präfix beginnen.

[email protected]:~/Documents$ ls
someLogFile.log               someSeparatedLogFiles.log_aj
someSeparatedLogFiles.log_aa  someSeparatedLogFiles.log_ak
someSeparatedLogFiles.log_ab  someSeparatedLogFiles.log_al
someSeparatedLogFiles.log_ac  someSeparatedLogFiles.log_am
someSeparatedLogFiles.log_ad  someSeparatedLogFiles.log_an
someSeparatedLogFiles.log_ae  someSeparatedLogFiles.log_ao
someSeparatedLogFiles.log_af  someSeparatedLogFiles.log_ap
someSeparatedLogFiles.log_ag  someSeparatedLogFiles.log_aq
someSeparatedLogFiles.log_ah  someSeparatedLogFiles.log_ar
someSeparatedLogFiles.log_ai

5. Suffixlänge aufteilen und angeben

Split verfügt über eine Standard-Suffixlänge von 2 [aa, ab usw.]. Dies ändert sich automatisch, wenn die Anzahl der Dateien zunimmt, aber wenn Sie es manuell ändern möchten, ist das auch möglich. Nehmen wir also an, Sie möchten, dass unsere Dateien so etwas wie someSeparatedLogFiles.log_aaaab.

heißen

Wie kannst du das tun? Die Option -a ermöglicht es uns, die Länge des Suffixes anzugeben.

split someLogFile.log someSeparatedLogFiles.log_ -a 5

Und hier sind die aufgeteilten Dateien:

[email protected]:~/Documents$ ls
someLogFile.log                  someSeparatedLogFiles.log_aaaae  someSeparatedLogFiles.log_aaaaj  someSeparatedLogFiles.log_aaaao
someSeparatedLogFiles.log_aaaaa  someSeparatedLogFiles.log_aaaaf  someSeparatedLogFiles.log_aaaak  someSeparatedLogFiles.log_aaaap
someSeparatedLogFiles.log_aaaab  someSeparatedLogFiles.log_aaaag  someSeparatedLogFiles.log_aaaal  someSeparatedLogFiles.log_aaaaq
someSeparatedLogFiles.log_aaaac  someSeparatedLogFiles.log_aaaah  someSeparatedLogFiles.log_aaaam  someSeparatedLogFiles.log_aaaar
someSeparatedLogFiles.log_aaaad  someSeparatedLogFiles.log_aaaai  someSeparatedLogFiles.log_aaaan

6. Split mit numerischem Ordnungssuffix

Bis zu diesem Punkt haben Sie Ihre Dateien mit verschiedenen Buchstabenkombinationen getrennt gesehen. Ich persönlich finde es viel einfacher, Dateien anhand von Nummern zu unterscheiden.

Lassen Sie uns die Suffixlänge aus dem vorherigen Beispiel beibehalten, aber ändern Sie die alphabetische Organisation in numerisch mit der Option -d .

split someLogFile.log someSeparatedLogFiles.log_ -a 5 -d

Jetzt haben Sie also geteilte Dateien mit numerischen Zeichen.

[email protected]:~/Documents$ ls
someLogFile.log                  someSeparatedLogFiles.log_00004  someSeparatedLogFiles.log_00009  someSeparatedLogFiles.log_00014
someSeparatedLogFiles.log_00000  someSeparatedLogFiles.log_00005  someSeparatedLogFiles.log_00010  someSeparatedLogFiles.log_00015
someSeparatedLogFiles.log_00001  someSeparatedLogFiles.log_00006  someSeparatedLogFiles.log_00011  someSeparatedLogFiles.log_00016
someSeparatedLogFiles.log_00002  someSeparatedLogFiles.log_00007  someSeparatedLogFiles.log_00012  someSeparatedLogFiles.log_00017
someSeparatedLogFiles.log_00003  someSeparatedLogFiles.log_00008  someSeparatedLogFiles.log_00013

7. Hex-Suffixe an geteilte Dateien anhängen

Eine weitere Option für die Suffix-Erstellung ist die Verwendung des integrierten Hex-Suffixes, das geordnete Buchstaben und Zahlen abwechselt.

Für dieses Beispiel werde ich einige Dinge kombinieren, die ich Ihnen bereits gezeigt habe. Ich werde die Datei mit meinem eigenen Präfix aufteilen. Aus Gründen der Lesbarkeit habe ich einen Unterstrich gewählt.

Ich habe den -x verwendet Option zum Erstellen eines Hex-Suffixes. Dann teilte ich unsere Datei in 50 Teile auf und gab dem Suffix eine Länge von 6.

split someLogFile.log _ -x -n50 -a6

Und hier ist das Ergebnis des obigen Befehls:

[email protected]:~/Documents$ ls
_000000  _000003  _000006  _000009  _00000c  _00000f  _000012  _000015  _000018  _00001b  _00001e  _000021  _000024  _000027  _00002a  _00002d  _000030
_000001  _000004  _000007  _00000a  _00000d  _000010  _000013  _000016  _000019  _00001c  _00001f  _000022  _000025  _000028  _00002b  _00002e  _000031
_000002  _000005  _000008  _00000b  _00000e  _000011  _000014  _000017  _00001a  _00001d  _000020  _000023  _000026  _000029  _00002c  _00002f  someLogFile.log

8. Dateien in mehrere Dateien bestimmter Größe aufteilen

Es ist auch möglich, die Dateigröße zu verwenden, um Dateien aufzuteilen. Vielleicht müssen Sie eine große Datei so effizient wie möglich über ein Netzwerk mit begrenzter Größe senden. Sie können die genaue Größe für Ihre Anforderungen angeben.

Die Syntax kann ein wenig knifflig werden, wenn wir weitere Optionen hinzufügen. Also werde ich erklären, wie das -b Befehl funktioniert, bevor das Beispiel gezeigt wird.

Wenn Sie Dateien einer bestimmten Größe erstellen möchten, verwenden Sie den -b Möglichkeit. Sie können dann n schreiben K[B], n M[B], n G[B] wobei n ist der Wert Ihrer Dateigröße und K [1024] ist -kibi, M ist -mebi, G ist -gibi und so weiter. KB [1000] ist Kilo, MB – Mega usw.

Es mag so aussehen, als wäre viel los, aber es ist nicht so komplex, wenn Sie es aufschlüsseln. Sie haben die Quelldatei, unser Präfix für den Zieldateinamen, ein numerisches Suffix und die Trennung nach Dateigröße von 128 KB angegeben.

split someLogFile.log someSeparatedLogFiles.log_ -d -b 128KB

Hier sind die aufgeteilten Dateien:

[email protected]:~/Documents$ ls
someLogFile.log               someSeparatedLogFiles.log_02  someSeparatedLogFiles.log_05  someSeparatedLogFiles.log_08
someSeparatedLogFiles.log_00  someSeparatedLogFiles.log_03  someSeparatedLogFiles.log_06  someSeparatedLogFiles.log_09
someSeparatedLogFiles.log_01  someSeparatedLogFiles.log_04  someSeparatedLogFiles.log_07  someSeparatedLogFiles.log_10

Sie können das Ergebnis mit dem ‚wc‘-Befehl überprüfen.

[email protected]:~/Documents$ wc someSeparatedLogFiles.log_0*
1605    4959  128000 someSeparatedLogFiles.log_00
1605    4969  128000 someSeparatedLogFiles.log_01
1605    4953  128000 someSeparatedLogFiles.log_02
1605    4976  128000 someSeparatedLogFiles.log_03
1605    4955  128000 someSeparatedLogFiles.log_04
1605    4975  128000 someSeparatedLogFiles.log_05
1605    4966  128000 someSeparatedLogFiles.log_06
1605    4964  128000 someSeparatedLogFiles.log_07
1605    4968  128000 someSeparatedLogFiles.log_08
1605    4959  128000 someSeparatedLogFiles.log_09
16050   49644 1280000 total

9. Teilen Sie Dateien in mehrere Dateien mit der Größe „Höchstens“ n auf mit

Wenn Sie Dateien in ungefähr die gleiche Größe aufteilen, aber die Zeilenstruktur beibehalten möchten, ist dies möglicherweise die beste Wahl für Sie. Mit -C , können Sie eine maximale Größe angeben. Dann teilt das Programm die Dateien automatisch nach vollständigen Zeilen auf.

split someLogFile.log someNewLogFiles.log_ -d -C 1MB

Sie können in der Ausgabe sehen, dass die erste geteilte Datei fast 1 MB groß ist, während sich der Rest der Datei in der zweiten Datei befindet.

[email protected]:~/Documents$ ll
total 2772
drwxr-xr-x  2 chris chris   81920 Jul 24 22:01 ./
drwxr-xr-x 19 chris chris    4096 Jul 23 22:23 ../
-rw-r--r--  1 chris chris 1369273 Jul 20 17:52 someLogFile.log
-rw-r--r--  1 chris chris  999997 Jul 24 22:01 someNewLogFiles.log_00
-rw-r--r--  1 chris chris  369276 Jul 24 22:01 someNewLogFiles.log_01

Bonus-Tipp:Geteilte Dateien wieder zusammenfügen

Dies ist kein geteilter Befehl, aber er könnte für neue Benutzer hilfreich sein.

[email protected]:~/Documents$ ls
xaa  xab  xac  xad  xae  xaf  xag  xah  xai  xaj  xak  xal  xam  xan  xao  xap  xaq  xar

Sie können einen anderen Befehl verwenden, um diese Dateien wieder zusammenzuführen und eine Kopie unseres vollständigen Dokuments zu erstellen. Der cat-Befehl ist die Abkürzung für concatenate, was nur ein schickes Wort ist, das „Elemente zusammenfügen“ bedeutet. Da alle Dateien mit dem Buchstaben „x“ beginnen, wendet das Sternchen den Befehl auf alle Dateien an, die mit diesem Buchstaben beginnen.

[email protected]:~/Documents$ cat x* > recoveredLogFile.log
[email protected]:~/Documents$ ls
recoveredLogFile.log  xab  xad  xaf  xah  xaj  xal  xan  xap  xar
xaa                   xac  xae  xag  xai  xak  xam  xao  xaq

Wie Sie sehen können, hat unsere neu erstellte Datei die gleiche Größe wie unser Original.

wc -l recreatedLogFile.log
17170 recreatedLogFile.log

Unsere Formatierung (einschließlich der Anzahl der Zeilen) wird in der erstellten Datei beibehalten.

Wenn Sie neu bei Linux sind, hoffe ich, dass dieses Tutorial Ihnen geholfen hat, den Split-Befehl zu verstehen. Wenn Sie erfahrener sind, teilen Sie uns in den Kommentaren unten mit, wie Sie Split am liebsten verwenden!

Ob Anfänger oder erfahrener Mensch, ich würde vorschlagen, dass Sie sich auch den csplit-Befehl ansehen, der eine etwas bessere Möglichkeit zum Aufteilen von Dateien in der Linux-Befehlszeile darstellt.


Linux
  1. ls-Befehl unter Linux:17 nützliche Beispiele erklärt

  2. mv-Befehl unter Linux:7 wesentliche Beispiele

  3. Wesentliche Beispiele für den Dateibefehl in Linux

  4. ln-Befehlsbeispiele in Linux

  5. file Befehlsbeispiele in Linux

Touch-Befehl in Linux (5 Beispiele)

Linux-WC-Befehl mit Beispielen

9 Nützliche Beispiele für Touch-Befehle unter Linux

10 Nützliche Beispiele für den Sort-Befehl in Linux

Wesentliche Beispiele des ps-Befehls in Linux

15 super nützliche Beispiele für den Find-Befehl in Linux