Heim  >  Artikel  >  System-Tutorial  >  Linux File Operation Guide: Tipps zum Teilen und Reorganisieren von Dateien

Linux File Operation Guide: Tipps zum Teilen und Reorganisieren von Dateien

王林
王林nach vorne
2024-01-06 16:09:511164Durchsuche
Einführung Linux verfügt über mehrere Hilfsprogramme zum Aufteilen von Dateien. Warum möchten Sie die Datei teilen? Ein Anwendungsfall besteht darin, eine große Datei in kleinere Größen aufzuteilen, damit sie auf ein kleineres Speichermedium, beispielsweise einen USB-Stick, passt. Das Übertragen von Dateien über USB ist auch ein guter Trick, wenn Sie mit FAT32 nicht weiterkommen (maximale Dateigröße beträgt 4 GB) und Ihre Dateien größer sind. Ein weiterer Anwendungsfall ist die Beschleunigung von Netzwerkdateiübertragungen, da parallele Übertragungen kleiner Dateien im Allgemeinen schneller sind.

Wir lernen, wie man mit csplit, split und cat Dateien neu anordnet, bevor man sie zusammenführt. Diese Vorgänge sind für jeden Dateityp nützlich: Text, Bilder, Audiodateien, ISO-Image-Dateien usw.

Dateien mit csplit teilen

csplit ist einer dieser lustigen kleinen Befehle, die Sie immer dabei haben und ohne die Sie nicht mehr leben können, sobald Sie damit beginnen. csplit teilt eine einzelne Datei in mehrere Dateien auf. Dieses Beispiel zeigt die einfachste Verwendung, bei der die Datei foo.txt in drei Dateien aufgeteilt wird, wobei die Zeilennummern 17 und 33 als Teilungspunkte verwendet werden:

$ csplit foo.txt 17 33
2591
3889
2359

csplit erstellt drei neue Dateien im aktuellen Verzeichnis und gibt die Größe der neuen Dateien in Bytes aus. Standardmäßig erhält jede neue Datei den Namen xx_nn:

$ ls
xx00
xx01
xx02

Sie können die ersten zehn Zeilen jeder neuen Datei mit dem Befehl head anzeigen:

$ head xx*
==> xx00 <== Foo File by Carla Schroder Foo text Foo subheading More foo text ==> xx01 <== Foo text Foo subheading More foo text ==> xx02 <==
Foo text
Foo subheading
More foo text

Was ist, wenn Sie die Datei in mehrere Dateien mit der gleichen Anzahl an Zeilen aufteilen möchten? Sie können die Anzahl der Zeilen angeben und dann die Anzahl der Wiederholungen in geschweifte Klammern setzen. In diesem Beispiel wird die Aufteilung viermal wiederholt und der Rest wird in die letzte Datei verschoben:

$ csplit foo.txt 5 {4}
57
1488
249
1866
3798

Sie können den Sternchen-Platzhalter verwenden, um csplit anzuweisen, die Teilung so oft wie möglich zu wiederholen. Das klingt cool, kann aber fehlschlagen, wenn die Datei nicht gleichmäßig aufgeteilt werden kann (LCTT-Übersetzung: niedrigere Versionen von csplit unterstützen diesen Parameter nicht):

$ csplit foo.txt 10 {*}
1545
2115
1848
1901
csplit: '10': line number out of range on repetition 4
1430

Das Standardverhalten besteht darin, die Ausgabedatei zu löschen, wenn ein Fehler auftritt. Sie können dieses Problem mit der Option -k lösen, die die Ausgabedatei bei einem Fehler nicht löscht. Ein weiteres Verhalten besteht darin, dass jedes Mal, wenn Sie csplit ausführen, die zuvor erstellten Dateien überschrieben werden, sodass Sie sie separat mit neuen Dateinamen speichern müssen. Verwenden Sie --prefix= _prefix_, um ein anderes Dateipräfix festzulegen:

$ csplit -k --prefix=mine foo.txt 5 {*}
57
1488
249
1866
993
csplit: '5': line number out of range on repetition 9
437
$ ls
mine00
mine01
mine02
mine03
mine04
mine05

Option -n kann verwendet werden, um die Anzahl der Ziffern zu ändern, die zum Nummerieren von Dateien verwendet werden (Standard sind 2 Ziffern):

$ csplit -n 3 --prefix=mine foo.txt 5 {4}
57
1488
249
1866
1381
3798
$ ls
mine000
mine001
mine002
mine003
mine004
mine005

Das „c“ in csplit bedeutet Kontext. Das bedeutet, dass Sie Dateien basierend auf beliebigen passenden Mustern oder cleveren regulären Ausdrücken aufteilen können. Das folgende Beispiel teilt die Datei in zwei Teile. Die erste Datei endet in der Zeile, die das erste Vorkommen von „fie“ enthält, und die zweite Datei beginnt in der Zeile, die „fie“ enthält.

$ csplit foo.txt /fie/

Datei jedes Mal teilen, wenn „fie“ erscheint:

$ csplit foo.txt /fie/ {*}

Teilen Sie die Datei bei den ersten fünf Vorkommen von „fie“ auf:

$ csplit foo.txt /fie/ {5}

Kopieren Sie nur, wenn der Inhalt mit einer Zeile beginnt, die „fie“ enthält, und lassen Sie alles davor weg:

$ csplit myfile %fie%
Dateien in verschiedene Größen aufteilen

split ähnelt csplit. Es teilt Dateien in bestimmte Größen auf, was großartig ist, wenn Sie große Dateien in kleine Multimediadateien aufteilen oder die Netzwerkübertragung verwenden. Die Standardgröße beträgt 1000 Zeilen:

$ split foo.mv
$ ls -hl
266K Aug 21 16:58 xaa
267K Aug 21 16:58 xab
315K Aug 21 16:58 xac
[...]

Sie sind in ähnliche Größen unterteilt, Sie können jedoch jede gewünschte Größe angeben. In diesem Beispiel sind es 20 MB:

$ split -b 20M foo.mv

Abkürzungen für Maßeinheiten sind K, M, G, T, P, E, Z, Y (Potenz 1024) oder KB, MB, GB usw. (Potenz 1000).

Wählen Sie Ihr eigenes Präfix und Suffix für Dateinamen:

$ split -a 3 --numeric-suffixes=9 --additional-suffix=mine foo.mv SB
240K Aug 21 17:44 SB009mine
214K Aug 21 17:44 SB010mine
220K Aug 21 17:44 SB011mine
Die Option

-a steuert die Ziffernposition der Zahl. --numeric-suffixes legt den Startwert für die Nummerierung fest. Das Standardpräfix ist x. Sie können auch ein anderes Präfix festlegen, indem Sie es nach dem Dateinamen eingeben.

Geteilte Dateien zusammenführen

Möglicherweise möchten Sie Ihre Dateien irgendwann neu organisieren. Hier wird der häufig verwendete Cat-Befehl verwendet:

$ cat SB0* > foo2.txt

Der Sternchen-Platzhalter im Beispiel stimmt mit allen Dateien überein, die mit SB0 beginnen, was möglicherweise nicht zu den gewünschten Ergebnissen führt. Für eine genauere Übereinstimmung können Sie den Fragezeichen-Platzhalter verwenden, indem Sie ein Fragezeichen pro Zeichen verwenden:

$ cat SB0?????? > foo2.txt

Für vollständige Befehlsoptionen konsultieren Sie bitte wie immer das entsprechende Handbuch und die Informationsseiten.

Das obige ist der detaillierte Inhalt vonLinux File Operation Guide: Tipps zum Teilen und Reorganisieren von Dateien. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:linuxprobe.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen