Linux Essentials//Die Einsteiger-Zertifizierung des LPI - Linup Front ...
Linux Essentials//Die Einsteiger-Zertifizierung des LPI - Linup Front ...
Linux Essentials//Die Einsteiger-Zertifizierung des LPI - Linup Front ...
Erfolgreiche ePaper selbst erstellen
Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.
8.4 Datenverwaltung 119<br />
Wenn Sie nichts anderes angeben, wird »lexikographisch« unter Betrachtung der<br />
kompletten Zeile sortiert, das heißt, wenn die ersten Zeichen zweier Zeilen gleich<br />
sind, entscheidet das erste verschiedene Zeichen weiter hinten in der Zeile über<br />
deren relative Anordnung. Natürlich kann sort Zeilen nicht nur nach der ganzen<br />
Zeile, sondern auch »gezielt« nach den »Spalten« oder Feldern einer (zumin<strong>des</strong>t Sortieren in Feldern<br />
konzeptuellen) Tabelle sortieren. <strong>Die</strong> Felder werden beginnend mit 1 numeriert;<br />
mit der Option »-k 2« würde das erste Feld ignoriert und das zweite Feld jeder<br />
Zeile zum Sortieren herangezogen. Sind die Werte zweier Zeilen im zweiten Feld<br />
gleich, wird der Rest der Zeile angeschaut, wenn Sie nicht mit etwas wie »-k 2,3«<br />
das letzte anzuschauende Feld angeben. »-k 2,2« sortiert nur nach dem Wert der<br />
zweiten Spalte. Es ist übrigens auch erlaubt, im selben Kommando mehrere -k-<br />
Optionen anzugeben.<br />
B<br />
sort unterstützt außerdem noch eine antiquierte Form der Positionsangabe:<br />
Hier werden die Felder beginnend mit 0 numeriert, und das Startfeld wird<br />
mit »+m« und das Stoppfeld mit »-n« angegeben. Um die Differenzen zur<br />
modernen Form komplett zu machen, ist die Angabe <strong>des</strong> Stoppfelds auch<br />
noch »exklusive« – benannt wird das erste Feld, nach dem nicht mehr sortiert<br />
werden soll. <strong>Die</strong> Beispiele von oben wären also respektive »+1«, »+1 -3« und<br />
»+1 -2«.<br />
Als Trennmarkierung zwischen den verschiedenen Feldern dient das Leerzei- Trennmarkierung<br />
chen. Folgen mehrere Leerzeichen aufeinander, wird nur das erste als Trennzeichen<br />
interpretiert, die restlichen werden dem Inhalt <strong>des</strong> folgenden Fel<strong>des</strong><br />
zugeordnet. Dazu ein kleines Beispiel, namentlich die Meldeliste für den alljährlichen<br />
Marathonlauf <strong>des</strong> TSV Lahmhausen. Ganz zu Anfang stellen wir sicher,<br />
dass wir die Standardsprachumgebung <strong>des</strong> Systems (»POSIX«) verwenden, indem<br />
wir die entsprechenden Umgebungsvariablen zurücksetzen. (<strong>Die</strong> vierte Spalte ist<br />
übrigens die Startnummer.)<br />
$ unset LANG LC_ALL LC_COLLATE<br />
$ cat teilnehmer.dat<br />
Schulz Hugo SV Schnaufenberg 123 Herren<br />
Schleicher Detlef TSV Lahmhausen 13 Herren<br />
Flöttmann Fritz Sportfreunde Renntal 217 Herren<br />
Springinsfeld Karlheinz TV Jahnstein<br />
154 Herren<br />
von Traben Gesine TV Jahnstein 26 Damen<br />
Rasbichel Ulla TSV Lahmhausen 117 Damen<br />
Schwitz Sieglinde Sportfreunde Renntal 93 Damen<br />
Rasbichel Katja TSV Lahmhausen 119 Damen<br />
Langbein Leni SV Schnaufenberg 55 Damen<br />
Zielinger Hannes TV Jahnstein 45 Herren<br />
Fluschinsky Käthe Sportfreunde Renntal 57 Damen<br />
Versuchen wir uns zunächst an einer alphabetisch nach dem Nachnamen sortierten<br />
Liste. Das ist prinzipiell einfach, weil die Nachnamen ganz vorne in der Zeile<br />
stehen:<br />
$ sort teilnehmer.dat<br />
Fluschinsky Käthe Sportfreunde Renntal 57 Damen<br />
Flöttmann Fritz Sportfreunde Renntal 217 Herren<br />
Langbein Leni SV Schnaufenberg 55 Damen<br />
Rasbichel Katja TSV Lahmhausen 119 Damen<br />
Rasbichel Ulla TSV Lahmhausen 117 Damen<br />
Schleicher Detlef TSV Lahmhausen 13 Herren<br />
Schulz Hugo SV Schnaufenberg 123 Herren<br />
Schwitz Sieglinde Sportfreunde Renntal 93 Damen<br />
Springinsfeld Karlheinz TV Jahnstein<br />
154 Herren<br />
Zielinger Hannes TV Jahnstein 45 Herren<br />
von Traben Gesine TV Jahnstein 26 Damen<br />
Copyright © 2012 <strong>Linup</strong> <strong>Front</strong> GmbH