Startseite > Textverarbeitung & Suche > join

join: Zusammenführen gemeinsamer Felder aus zwei Dateien

Der Befehl join führt Zeilen aus zwei sortierten Textdateien basierend auf einem angegebenen gemeinsamen Feld zusammen und gibt das Ergebnis auf der Standardausgabe aus. Er funktioniert ähnlich wie eine JOIN-Operation in Datenbanken, indem er entsprechende Zeilen aus jeder Datei kombiniert, um neue Zeilen zu erstellen.

Übersicht

join vergleicht bestimmte Felder zweier Dateien und kombiniert übereinstimmende Zeilen. Dieser Befehl funktioniert nur korrekt, wenn die Eingabedateien basierend auf dem gemeinsamen Feld sortiert sind. Die Verwendung mit unsortierten Dateien kann zu unerwarteten Ergebnissen führen.

Hauptmerkmale

  • Zusammenführen basierend auf gemeinsamen Feldern zweier Dateien
  • Sortierung der Eingabedateien ist zwingend erforderlich
  • Steuerung des Ausgabeformats durch verschiedene Optionen
  • Nützlich für die Datenintegration und die Erstellung von Berichten

Wichtige Optionen

Der Befehl join bietet verschiedene Optionen zur präzisen Steuerung des Zusammenführungskriteriums, des Ausgabeformats und der Behandlung von nicht übereinstimmenden Zeilen.

Feld- und Trennzeichenspezifikation

Ausgabesteuerung

Erzeugter Befehl:

Kombinieren Sie die Befehle.

Beschreibung:

`join` Führen Sie den Befehl aus.

Kombinieren Sie diese Optionen und führen Sie die Befehle virtuell zusammen mit der KI aus.

Anwendungsbeispiele

Erfahren Sie, wie Sie Daten aus zwei Dateien effektiv zusammenführen, indem Sie verschiedene Anwendungsbeispiele des Befehls join untersuchen.

Grundlegendes Zusammenführen

echo "1 apple\n2 banana" > file1.txt && echo "1 red\n2 yellow" > file2.txt && join file1.txt file2.txt

Führt die ersten Felder zweier Dateien zusammen. (Nach der Dateierstellung ausführen)

Zusammenführen spezifischer Felder

echo "apple 1\nbanana 2" > file3.txt && echo "red 1\nyellow 2" > file4.txt && join -j 2 file3.txt file4.txt

Führt die zweiten Felder zweier Dateien zusammen. (Nach der Dateierstellung ausführen)

Verwendung von Tab-Trennzeichen

echo -e "id\tname\n1\tAlice\n2\tBob" > users.tsv && echo -e "id\tcity\n1\tSeoul\n3\tParis" > cities.tsv && join -t $'\t' users.tsv cities.tsv

Führt tabulatorgetrennte Dateien zusammen. (Nach der Dateierstellung ausführen)

Einschließen nicht übereinstimmender Zeilen

echo "1 apple\n2 banana\n3 orange" > file5.txt && echo "1 red\n2 yellow" > file6.txt && join -a 1 file5.txt file6.txt

Schließt auch Zeilen ein, die nur in der ersten Datei (file5.txt) vorhanden sind. (Nach der Dateierstellung ausführen)

Ausgabe spezifischer Felder

echo "1 apple\n2 banana" > file7.txt && echo "1 red\n2 yellow" > file8.txt && join -o 1.1,1.2,2.2 file7.txt file8.txt

Gibt nur das erste und zweite Feld der ersten Datei sowie das zweite Feld der zweiten Datei aus. (Nach der Dateierstellung ausführen)

Tipps & Hinweise

Nützliche Tipps und zu beachtende Punkte bei der Verwendung des Befehls join.

Wichtige Tipps

  • **Sortierung der Eingabedateien**: Der Befehl join funktioniert nur korrekt, wenn die Eingabedateien basierend auf dem Join-Feld sortiert sind. Es ist zwingend erforderlich, die Dateien vorher mit dem Befehl `sort` zu sortieren. Beispiel: `sort file1.txt > sorted_file1.txt`
  • **Feldtrennzeichen**: Das Standardtrennzeichen ist ein Leerzeichen (Space, Tab). Verwenden Sie die Option `-t`, um ein anderes Trennzeichen zu verwenden. Für CSV-Dateien verwenden Sie beispielsweise `-t ','`.
  • **Steuerung des Ausgabeformats**: Mit der Option `-o` können Sie die Reihenfolge und die Einbeziehung der auszugebenden Felder präzise steuern. Geben Sie sie im Format `DATEINUMMER.FELDNUMMER` an (z.B. `1.2` für das zweite Feld der ersten Datei).
  • **Behandlung nicht übereinstimmender Zeilen**: Mit den Optionen `-a` oder `-v` können Sie nicht nur übereinstimmende Zeilen, sondern auch nicht übereinstimmende Zeilen einschließen oder nur nicht übereinstimmende Zeilen ausgeben.

Gleiche Kategorie Befehle