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

15 Linux-Split-and-Join-Befehlsbeispiele zum Verwalten großer Dateien

Linux-Split- und Join-Befehle sind sehr hilfreich, wenn Sie große Dateien bearbeiten. Dieser Artikel erläutert die Verwendung des Linux-Befehls „Split and Join“ mit anschaulichen Beispielen.

Join- und Split-Befehlssyntax:

join [OPTION]… FILE1 FILE2
split [OPTION]… [INPUT [PREFIX]]

Linux-Split-Befehlsbeispiele

1. Einfaches Split-Beispiel

Hier ist ein einfaches Beispiel für einen Split-Befehl.

$ split split.zip 

$ ls
split.zip  xab  xad  xaf  xah  xaj  xal  xan  xap  xar  xat  xav  xax  xaz  xbb  xbd  xbf  xbh  xbj  xbl  xbn
xaa        xac  xae  xag  xai  xak  xam  xao  xaq  xas  xau  xaw  xay  xba  xbc  xbe  xbg  xbi  xbk  xbm  xbo

Wir sehen also, dass die Datei split.zip in kleinere Dateien mit x** als Dateinamen aufgeteilt wurde. Wobei ** das zweistellige Suffix ist, das standardmäßig hinzugefügt wird. Außerdem enthält jede x**-Datei standardmäßig 1000 Zeilen.

$ wc -l *
   40947 split.zip
    1000 xaa
    1000 xab
    1000 xac
    1000 xad
    1000 xae
    1000 xaf
    1000 xag
    1000 xah
    1000 xai
...
...
...

Die obige Ausgabe bestätigt also, dass standardmäßig jede x**-Datei 1000 Zeilen enthält.

2.Ändern Sie die Suffixlänge mit der Option -a

Wie in Beispiel 1 oben besprochen, ist die Standard-Suffixlänge 2. Dies kann jedoch mit der Option -a geändert werden.

Wie Sie im folgenden Beispiel sehen, wird das Suffix der Länge 5 für die geteilten Dateien verwendet.

$ split -a5 split.zip
$ ls
split.zip  xaaaac  xaaaaf  xaaaai  xaaaal  xaaaao  xaaaar  xaaaau  xaaaax  xaaaba  xaaabd  xaaabg  xaaabj  xaaabm
xaaaaa     xaaaad  xaaaag  xaaaaj  xaaaam  xaaaap  xaaaas  xaaaav  xaaaay  xaaabb  xaaabe  xaaabh  xaaabk  xaaabn
xaaaab     xaaaae  xaaaah  xaaaak  xaaaan  xaaaaq  xaaaat  xaaaaw  xaaaaz  xaaabc  xaaabf  xaaabi  xaaabl  xaaabo

Hinweis:Vorhin haben wir auch über andere Dienstprogramme zur Dateibearbeitung gesprochen – tac, rev, paste.

3. Passen Sie die Größe der geteilten Datei mit der Option -b an

Die Größe jeder aufgeteilten Ausgabedatei kann mit der Option -b gesteuert werden.

In diesem Beispiel wurden die Split-Dateien mit einer Größe von 200000 Bytes erstellt.

$ split -b200000 split.zip 

$ ls -lart
total 21084
drwxrwxr-x 3 himanshu himanshu     4096 Sep 26 21:20 ..
-rw-rw-r-- 1 himanshu himanshu 10767315 Sep 26 21:21 split.zip
-rw-rw-r-- 1 himanshu himanshu   200000 Sep 26 21:35 xad
-rw-rw-r-- 1 himanshu himanshu   200000 Sep 26 21:35 xac
-rw-rw-r-- 1 himanshu himanshu   200000 Sep 26 21:35 xab
-rw-rw-r-- 1 himanshu himanshu   200000 Sep 26 21:35 xaa
-rw-rw-r-- 1 himanshu himanshu   200000 Sep 26 21:35 xah
-rw-rw-r-- 1 himanshu himanshu   200000 Sep 26 21:35 xag
-rw-rw-r-- 1 himanshu himanshu   200000 Sep 26 21:35 xaf
-rw-rw-r-- 1 himanshu himanshu   200000 Sep 26 21:35 xae
-rw-rw-r-- 1 himanshu himanshu   200000 Sep 26 21:35 xar
...
...
...

4. Geteilte Dateien mit numerischem Suffix mit der Option -d erstellen

Wie in den obigen Beispielen zu sehen, hat die Ausgabe das Format x**, wobei ** Alphabete sind. Sie können dies mit der Option -d in Zahl ändern.

Hier ist ein Beispiel. Dies hat ein numerisches Suffix in den geteilten Dateien.

$ split -d split.zip
$ ls
split.zip  x01  x03  x05  x07  x09  x11  x13  x15  x17  x19  x21  x23  x25  x27  x29  x31  x33  x35  x37  x39
x00        x02  x04  x06  x08  x10  x12  x14  x16  x18  x20  x22  x24  x26  x28  x30  x32  x34  x36  x38  x40

5. Passen Sie die Anzahl der Split Chunks mit der Option -C

an

Um die Anzahl der Chunks zu steuern, verwenden Sie die Option -C.

In diesem Beispiel werden 50 Blöcke aufgeteilter Dateien erstellt.

$ split -n50 split.zip
$ ls
split.zip  xac  xaf  xai  xal  xao  xar  xau  xax  xba  xbd  xbg  xbj  xbm  xbp  xbs  xbv
xaa        xad  xag  xaj  xam  xap  xas  xav  xay  xbb  xbe  xbh  xbk  xbn  xbq  xbt  xbw
xab        xae  xah  xak  xan  xaq  xat  xaw  xaz  xbc  xbf  xbi  xbl  xbo  xbr  xbu  xbx

6. Vermeiden Sie Chunks der Größe Null mit der Option -e

Während Sie eine relativ kleine Datei in eine große Anzahl von Chunks aufteilen, ist es gut, null große Chunks zu vermeiden, da sie keinen Mehrwert bringen. Dies kann mit der Option -e erfolgen.

Hier ist ein Beispiel:

$ split -n50 testfile

$ ls -lart x*
-rw-rw-r-- 1 himanshu himanshu 0 Sep 26 21:55 xag
-rw-rw-r-- 1 himanshu himanshu 1 Sep 26 21:55 xaf
-rw-rw-r-- 1 himanshu himanshu 1 Sep 26 21:55 xae
-rw-rw-r-- 1 himanshu himanshu 1 Sep 26 21:55 xad
-rw-rw-r-- 1 himanshu himanshu 1 Sep 26 21:55 xac
-rw-rw-r-- 1 himanshu himanshu 1 Sep 26 21:55 xab
-rw-rw-r-- 1 himanshu himanshu 1 Sep 26 21:55 xaa
-rw-rw-r-- 1 himanshu himanshu 0 Sep 26 21:55 xbx
-rw-rw-r-- 1 himanshu himanshu 0 Sep 26 21:55 xbw
-rw-rw-r-- 1 himanshu himanshu 0 Sep 26 21:55 xbv
...
...
...

Wir sehen also, dass in der obigen Ausgabe viele Chunks der Größe Null erzeugt wurden. Jetzt können wir die Option -e verwenden und die Ergebnisse sehen:

$ split -n50 -e testfile
$ ls
split.zip  testfile  xaa  xab  xac  xad  xae  xaf

$ ls -lart x*
-rw-rw-r-- 1 himanshu himanshu 1 Sep 26 21:57 xaf
-rw-rw-r-- 1 himanshu himanshu 1 Sep 26 21:57 xae
-rw-rw-r-- 1 himanshu himanshu 1 Sep 26 21:57 xad
-rw-rw-r-- 1 himanshu himanshu 1 Sep 26 21:57 xac
-rw-rw-r-- 1 himanshu himanshu 1 Sep 26 21:57 xab
-rw-rw-r-- 1 himanshu himanshu 1 Sep 26 21:57 xaa

Wir sehen also, dass in der obigen Ausgabe kein Chunk der Größe Null erzeugt wurde.

7. Passen Sie die Anzahl der Zeilen mit der Option -l an

Die Anzahl der Zeilen pro Ausgabe-Split-Datei kann mit der Option -l angepasst werden.

Wie im folgenden Beispiel zu sehen ist, werden aufgeteilte Dateien mit 20000 Zeilen erstellt.

$ split -l20000 split.zip

$ ls
split.zip  testfile  xaa  xab  xac

$ wc -l x*
   20000 xaa
   20000 xab
     947 xac
   40947 total

Erhalten Sie detaillierte Informationen mit der Option –verbose

Um jedes Mal eine Diagnosemeldung zu erhalten, wenn eine neue Split-Datei geöffnet wird, verwenden Sie die Option –verbose wie unten gezeigt.

$ split -l20000 --verbose split.zip
creating file `xaa'
creating file `xab'
creating file `xac'

Linux-Join-Befehlsbeispiele

8. Einfaches Join-Beispiel

Der Join-Befehl arbeitet mit dem ersten Feld der beiden Dateien (als Eingabe bereitgestellt), indem die ersten Felder abgeglichen werden.

Hier ist ein Beispiel:

$ cat testfile1
1 India
2 US
3 Ireland
4 UK
5 Canada

$ cat testfile2
1 NewDelhi
2 Washington
3 Dublin
4 London
5 Toronto

$ join testfile1 testfile2
1 India NewDelhi
2 US Washington
3 Ireland Dublin
4 UK London
5 Canada Toronto

Wir sehen also, dass eine Datei mit Ländern mit einer anderen Datei mit Hauptstädten auf der Grundlage des ersten Felds verknüpft wurde.

9. Join funktioniert auf Sortierte Liste

Wenn eine der beiden Dateien, die dem Join-Befehl übergeben werden, nicht sortiert ist, wird eine Warnung in der Ausgabe angezeigt und dieser bestimmte Eintrag wird nicht verbunden.

Da die Eingabedatei in diesem Beispiel nicht sortiert ist, wird eine Warn-/Fehlermeldung angezeigt.

$ cat testfile1
1 India
2 US
3 Ireland
5 Canada
4 UK

$ cat testfile2
1 NewDelhi
2 Washington
3 Dublin
4 London
5 Toronto

$ join testfile1 testfile2
1 India NewDelhi
2 US Washington
3 Ireland Dublin
join: testfile1:5: is not sorted: 4 UK
5 Canada Toronto

10. Groß-/Kleinschreibung mit Option -i ignorieren

Beim Vergleichen von Feldern kann der Unterschied zwischen Groß- und Kleinschreibung mit der Option -i wie unten gezeigt ignoriert werden.

$ cat testfile1
a India
b US
c Ireland
d UK
e Canada

$ cat testfile2
a NewDelhi
B Washington
c Dublin
d London
e Toronto

$ join testfile1 testfile2
a India NewDelhi
c Ireland Dublin
d UK London
e Canada Toronto

$ join -i testfile1 testfile2
a India NewDelhi
b US Washington
c Ireland Dublin
d UK London
e Canada Toronto

11. Überprüfen Sie, ob die Eingabe sortiert ist, indem Sie die Option –check-order

verwenden

Hier ist ein Beispiel. Da testfile1 gegen Ende unsortiert war, wurde ein Fehler in der Ausgabe erzeugt.

$ cat testfile1
a India
b US
c Ireland
d UK
f Australia
e Canada

$ cat testfile2
a NewDelhi
b Washington
c Dublin
d London
e Toronto

$ join --check-order testfile1 testfile2
a India NewDelhi
b US Washington
c Ireland Dublin
d UK London
join: testfile1:6: is not sorted: e Canada

12. Prüfen Sie die Sortierung nicht mit der Option –nocheck-order

Dies ist das Gegenteil des vorherigen Beispiels. In diesem Beispiel wird keine Prüfung auf Sortierung durchgeführt und es wird keine Fehlermeldung angezeigt.

$ join --nocheck-order testfile1 testfile2
a India NewDelhi
b US Washington
c Ireland Dublin
d UK London

13. Nicht koppelbare Leitungen mit der Option -a ausgeben

Wenn beide Eingabedateien nicht eins zu eins zugeordnet werden können, können wir über die Option -a[FILENUM] die Zeilen haben, die beim Vergleich nicht gepaart werden können. FILENUM ist die Dateinummer (1 oder 2).

Im folgenden Beispiel sehen wir, dass die Verwendung von -a1 die letzte Zeile in Testdatei1 (unten fett markiert) erzeugt hat, die kein Paar in Testdatei2 hatte.

$ cat testfile1
a India
b US
c Ireland
d UK
e Canada
f Australia

$ cat testfile2
a NewDelhi
b Washington
c Dublin
d London
e Toronto

$ join testfile1 testfile2
a India NewDelhi
b US Washington
c Ireland Dublin
d UK London
e Canada Toronto

$ join -a1 testfile1 testfile2
a India NewDelhi
b US Washington
c Ireland Dublin
d UK London
e Canada Toronto
f Australia

14. Nur ungepaarte Leitungen mit der Option -v drucken

Im obigen Beispiel wurden in der Ausgabe sowohl gepaarte als auch ungepaarte Linien erzeugt. Wenn jedoch nur eine ungepaarte Ausgabe gewünscht wird, verwenden Sie die Option -v wie unten gezeigt.

$ join -v1 testfile1 testfile2
f Australia

15. Join basierend auf unterschiedlichen Spalten aus beiden Dateien mit der Option -1 und -2

Standardmäßig werden die ersten Spalten in beiden Dateien zum Vergleichen vor dem Verbinden verwendet. Sie können dieses Verhalten mit den Optionen -1 und -2 ändern.

Im folgenden Beispiel wurde die erste Spalte von testfile1 mit der zweiten Spalte von testfile2 verglichen, um die Ausgabe des Join-Befehls zu erzeugen.

$ cat testfile1
a India
b US
c Ireland
d UK
e Canada

$ cat testfile2
NewDelhi a
Washington b
Dublin c
London d
Toronto e

$ join -1 1 -2 2 testfile1 testfile2
a India NewDelhi
b US Washington
c Ireland Dublin
d UK London
e Canada Toronto

Linux
  1. Linux-Cat-Befehl:Verwendung und Beispiele

  2. So teilen und kombinieren Sie Dateien von der Befehlszeile in Linux

  3. Linux Objcopy-Befehlsbeispiele zum Kopieren und Übersetzen von Objektdateien

  4. Wie kopiert man Dateien unter Linux und Unix? 10 cp Befehlsbeispiele

  5. 10 Cat-Befehlsbeispiele zum Verwalten von Dateien unter Linux / UNIX

lsof-Befehl unter Linux (10 Beispiele)

Befehlsoptionen und Beispiele für den Tee-Befehl in Linux

Cat-Befehl in Linux:Wesentliche und erweiterte Beispiele

lsof-Befehl unter Linux mit Beispielen

Linux-Split-Befehl mit Beispielen

Linux-Comm-Befehl mit Beispielen