Ü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.