Linux-Befehle · 4 min read · Sep 17, 2025

Linux Join-Befehl Tutorial für Anfänger (5 Beispiele)

Manchmal möchten Sie möglicherweise zwei Dateien so kombinieren, dass die Ausgabe noch mehr Sinn macht. Zum Beispiel könnte es eine Datei mit den Namen der Kontinente geben und eine andere Datei mit den Namen der Länder, die sich in diesen Kontinenten befinden, und die Anforderung besteht darin, beide Dateien so zu kombinieren, dass ein Kontinent und das entsprechende Land in derselben Zeile erscheinen.

Das ist nur ein Beispiel - es könnte Hunderte solcher Anwendungsfälle geben. Wenn Sie Linux verwenden und nach einem Tool suchen, das Ihnen in solchen Situationen helfen kann, sollten Sie sich join ansehen, ein Kommandozeilen-Dienstprogramm. In diesem Tutorial werden wir diesen Befehl anhand einiger leicht verständlicher Beispiele besprechen.

Bitte beachten Sie, dass alle in diesem Artikel genannten Beispiele auf Ubuntu 16.04 getestet wurden und die verwendete Version des join-Befehls 8.25 ist.

Linux join-Befehl

Der join-Befehl ermöglicht es Ihnen, Zeilen von zwei Dateien anhand eines gemeinsamen Feldes zu kombinieren.

join [OPTION]... DATEI1 DATEI2

Hier ist, was die Man-Seite über dieses Tool sagt:

Für jedes Paar von Eingabezeilen mit identischen Join-Feldern wird eine Zeile an die Standardausgabe geschrieben. Das Standard-Join-Feld ist das erste, durch Leerzeichen getrennt. Wenn DATEI1 oder DATEI2 (nicht beide) - ist, lesen Sie die Standard-Eingabe.

Die folgenden Beispiele sollten Ihnen eine gute Vorstellung davon geben, wie der join-Befehl funktioniert.

1. Wie kombiniert man Zeilen von Dateien mit dem join-Befehl?

Lassen Sie uns die grundlegende Verwendung des join-Befehls verstehen. Angenommen, es gibt zwei Dateien (datei1 und datei2), die die folgenden Zeilen enthalten:

1. Asien:  
2. Afrika:  
3. Europa:  
4. Nordamerika:

und

1. Indien  
2. Nigeria  
3. Die Niederlande  
4. Die USA

Jetzt können Sie diese beiden Dateien auf folgende Weise kombinieren:

join datei1 datei2

Hier ist die Ausgabe des obigen Befehls in unserem Fall:

2. Wie lässt man join unpaarbare Zeilen drucken?

Standardmäßig druckt der join-Befehl nur paarbare Zeilen. Zum Beispiel, selbst wenn datei1 ein zusätzliches Feld enthält (Zeilennummer 5):

1. Asien:  
2. Afrika:  
3. Europa:  
4. Nordamerika:  
5. Südamerika:

Das Zusammenführen von datei1 und datei2 ergibt keine andere Ausgabe:

Das liegt daran, dass unpaarbare Zeilen in der Ausgabe weggelassen werden. Wenn Sie jedoch möchten, können Sie sie dennoch in der Ausgabe haben, indem Sie die -a-Option verwenden. Diese Option erfordert, dass Sie eine Dateinummer übergeben, damit das Tool weiß, von welcher Datei Sie sprechen.

In unserem Fall wäre der Befehl:

join datei1 datei2 -a 1

So sehen Sie, dass die unpaarige Zeile aus der Dateinummer 1 (datei1 in unserem Fall) ebenfalls in der Ausgabe angezeigt wurde.

Beachten Sie, dass Sie, falls Sie nur unpaarige Zeilen drucken möchten (d.h. die gepaarten Zeilen in der Ausgabe unterdrücken möchten), dies mit der -v-Option tun können. Diese Option funktioniert genau wie -a.

Hier ist ein Beispiel für die -v-Option:

3. Wie gibt man benutzerdefinierte Join-Felder an?

Wie wir bereits wissen, kombiniert join Zeilen von Dateien anhand eines gemeinsamen Feldes, das standardmäßig das erste Feld ist. Wenn Sie jedoch möchten, können Sie für jede Datei ein anderes Feld angeben. Zum Beispiel, betrachten Sie die folgenden Inhalte in datei1 und datei2:

* 1. Asien:  
& 2. Afrika:  
@ 3. Europa:  
# 4. Nordamerika:
# 1. Indien  
@ 2. Nigeria  
& 3. Die Niederlande  
* 4. Die USA

Wenn Sie jetzt möchten, dass das zweite Feld jeder Zeile das gemeinsame Feld für join ist, können Sie dies dem Tool mitteilen, indem Sie die -1- und -2-Optionen verwenden. Während die erste die erste Datei darstellt, bezieht sich die letztere auf die zweite Datei. Diese Optionen erfordern ein numerisches Argument, das sich auf das Join-Feld für die entsprechende Datei bezieht.

In unserem Fall wäre der Befehl:

join -1 2 -2 2 datei1 datei2

Und hier ist die Ausgabe dieses Befehls:

Beachten Sie, dass Sie, falls die Position des gemeinsamen Feldes in beiden Dateien gleich ist (wie im Beispiel, das wir gerade besprochen haben, wo es 2 ist), den Teil -1 [feld] -2 [feld] im Befehl durch -j [feld] ersetzen können. In unserem Fall würde der Befehl also lauten:

join -j2 datei1 datei2

4. Wie macht man die Join-Operation nicht fallunempfindlich?

Standardmäßig ist die Join-Befehlsoperation fallempfindlich. Zum Beispiel, betrachten Sie die folgenden Dateien:

datei1

A. Asien:  
B. Afrika:  
C. Europa:  
D. Nordamerika:

datei2

a. Indien  
b. Nigeria  
c. Die Niederlande  
d. Die USA

Wenn Sie jetzt versuchen, diese beiden Dateien mit dem Standard (ersten) gemeinsamen Feld zusammenzuführen, passiert nichts. Das liegt daran, dass die Groß- und Kleinschreibung der Feldelemente in beiden Dateien unterschiedlich ist. Um join zu veranlassen, dieses Fallproblem zu ignorieren, verwenden Sie die -i-Option.

Hier ist der Befehl für unseren Fall:

join -i datei1 datei2

Und der folgende Screenshot zeigt den Befehl in Aktion:

5. Wie lässt man join nicht nach sortierter Eingabe prüfen?

Standardmäßig überprüft der join-Befehl, ob die bereitgestellte Eingabe sortiert ist, und meldet dies, wenn nicht. Zum Beispiel, betrachten Sie die folgende Ausgabe, wenn die Informationen in datei1 nicht sortiert waren:

Wenn Sie jetzt möchten, dass diese Fehlermeldung/Warnung verschwindet, können Sie dies mit der –nocheck-order-Option tun. Hier ist derselbe Befehl, aber mit dieser Option aktiviert:

So sehen Sie, dass der join-Befehl diesmal nicht nach sortierter Eingabe überprüft hat.

Fazit

Join ist möglicherweise kein sehr einfaches Tool zu verstehen, aber sobald Sie sich daran gewöhnt haben, kann es in einigen Situationen eine enorme Zeitersparnis für Sie sein. Wir haben die meisten der hier genannten Befehlszeilenoptionen behandelt. Probieren Sie diese aus, und wenn Sie fertig sind, gehen Sie die Man-Seite des Befehls für den Rest durch.

Share: X/Twitter LinkedIn

Erhalte neue Beiträge in deinem Posteingang.

Kein Spam. Jederzeit abmelden.