Shells: Tutorial |
||||||
* Einführung * Installation * Paketmanager * Grundlagen * Shells * Entwicklung * KDE * Skriptsprachen * AWK * PHP * Perl * Apache * Veranstaltungen * Schulungen * Bücher * Netzwerk * OpenOffice * OpenSource * Samba | ||||||
Shells![]() Home Erste Schritte mit der Bourne-Shell Dateien zeilenweise zusammenfügen Head or Tail Schleifen und Zählen Shell-Variablen Pipes Sortieren von Daten Wer sucht der findet! Praktische Shell-Skripte Rechtschreibung Schleifen und elegant Zählen Texte formatieren mit fmt und fold Umlenkung der Ein- und der Ausgaben Klammer-Erweiterung Verknüpfen von Textdateien mittels Schlüsselfeldern Mit freundlicher Unterstützung von: Linux-Kurse und Seminare ![]() Veranstalter des Linux-Tag am Bodensee 2007 und 2008 Kontakt Haftung Impressum Problem Hilfe Startseite |
joinEin äußerst interessanter Befehl, der leider selbst von vielen Linux-Kennern kaum Beachtung findet bzw. gar nicht bekannt ist.Syntax join [Optionen] Datei1 Datei2 Zeilen der beiden Dateien, die ein identisches Schlüsselfeld (join field) habenwerden für die Ausgabe zu einer Zeile zusammengefasst. Alle anderen Zeilen erscheinen nicht in der Ausgabe.
Der Aufruf: join -j 1 datei1.txt datei2.txt liefert folgendes Ergebnis: 1 one eins 2 two zwei 3 three drei 4 four vier 5 five fünf 6 six sechs 7 seven sieben Man sieht, dass die Zeile "0 zero" der ersten Datei und die Zeile "3,5 dreieinhalb" der zweiten Datei nicht in der Ausgabe erscheinen. "-j 1" besagt, dass man die erste Spalte als Schlüsselfeld deklariert. Gibt man die Option -j nicht an, so wird die erste Spalte default-mäßig als Schlüsselfeld angenommen. Interessant ist auch die Option -a. Sie kann den Wert 1 (erste Datei) oder den Wert 2 (zweite Datei) annehmen. Für "-a 1" werden auch die Zeilen der ersten Datei, die sich nicht mit der zweiten Datei verknüpfen lassen, in der Ausgabe übernommen. Am besten sieht man dies an einem einfachen Beispiel: join -a 1 datei1.txt datei2.txt liefert: 0 zero 1 one eins 2 two zwei 3 three drei 4 four vier 5 five fünf 6 six sechs 7 seven sieben Aber join -a 2 datei1.txt datei2.txt liefert 1 one eins 2 two zwei 3 three drei 3,5 dreieinhalb 4 four vier 5 five fünf 6 six sechs 7 seven sieben Die Option "-v" verhält sich wie -a, aber es werden nur die Zeilen ausgegeben, die sich von der ersten Datei bei "-v 1" nicht verknüpfen lassen, bzw. von der zweiten Datei bei "-v 2". Beispiele: join -v 2 datei1.txt datei2.txt Ausgabe: 3,5 dreieinhalb join -v 1 datei1.txt datei2.txt liefert 0 zero |