Sortieren von Dateien
Der Filter sort, sortiert die Eingabedateien zeilenweise und gibt die sortíerten Daten auf Standardoutput aus. Wenn die sortierten Daten in einer Datei abgelegt werden sollen, so kann mit Pipe oder Umleitung gearbeitet werden.
Syntax : sort [-cmu] [-ooutput] [-ykmem] -zrecsz] [-dfiMnr] [-btx] [+pos1[-pos2]]... [inpfile]... Regeln: o Default Sort-key ist die gesamte Zeile o Default Sort-Order ist aufsteigend nach der Collating-Sequence. Die nachfolgenden Optionen beeinflußen den Sort: -c Check only, es soll nur die Sortierfolge geprüft werden. Eine Ausgabe erfolgt nur, wenn die Folge fehlerhaft ist. -m Merge, die Eingabedateien liegen in sortierter Folge vor und sollen zusammengemischt werden. -u unterdrücke doppelte Entries (unique) sort -um +0 -1 datum |______ Sortierbegriff beginnt mit Feld 0 |___ Sortierbegriff endet vor Feld 1 - es wird nur nach dem ersten Entry sortiert. - Trennzeichen ist Blank -ooutput Name der Outputdatei sort -fm -omfile file1 file2 -ykmem Angabe der Memorygrösse in KB die der Sort als Anfangsvorgabe verwendet (Default ist maximum Memory) -y0 beginnt mit einer minimalen Memorygrösse. Bei Bedarf wird mehr Memory zugeordnet bis das Maximum erreicht ist. -zrecsz Die Länge des längsten Satzes wird beim Einlesen ür die Sortphase gespeichert, damit für die Merge-Phase die Buffer entsprechend allokiert werden können. Wird die Sortphase nicht verwendet (-c oder -m) so wird mit Systemdefaults gearbeitet. Ist der Default zu klein, wird der Sort abnormal beendet. Die nachfolgenden Optionen überschreiben die Defaultsortierfolge: -d Dictionary Order (Buchstaben, Ziffern, Blanks) -f Groß- und Kleinschreibung wird gleich behandelt (fold) -i Ignoriere Character die außerhalb des ASCII-Bereichs O40 bis O176 (oktal) x20 bis x7E (hex) 32 bis 126 (dezimal) liegen bei nichtnumerischen Vergleichen. -n Numerischer Sort (enthält implizit -b) Zugelassene Zeichen: - führende Blanks - evlt Minus-Zeichen - Null bis n Ziffern evtl. mit Dezimalpunkt -r absteigende Sortierfolgr (reverse order) -tx Benutze Zeichen x als Trennzeichen zwischen den Feldern z.B. -t: bei der Sortierung der Datei /etc/passwd. Jedes Trennzeichen ist signifikant. :: definiert ein leeres Feld Wenn -tx nicht angegeben ist, dann werden Strings durch Blanks getrennt. Das erste Blank oder TAB gilt als Feldbegrenzer. Nachfolgende weitere Blanks sind Teil des nachfolgenden Feldes. (Alle Blanks am Satzanfang sind Teil des ersten Feldes). -b führende Blanks und Tabs bei Feldvergleichen ignorieren. Optionen können global für für alle Sortierschlüssel angegeben werden (vorne) oder gezielt für einzelne Sortierschlüssel (direkt davor). Die Angabe von pos1 und pos2 betrifft den Sortierschlüssel +pos1 in der Form : m[.n] gefolgt von einer Option bdfinr | |__ Anzahl der zu überspringenden Felder +2 -> Sortierung 3. Feld | |_ Anzahl der zu überspringenden Bytes innerhalb des Feldes (Default .0). Wenn gleichzeitig mit -b gearbeitet wird, dann wird erst ab dem ersten nicht Blank gezählt sort -t: -bn +2 /etc/passwd |____ numeric -pos2 in der Form m[.n] Die letzte Stelle des Sortierbegriffs ist unmittelbar vor pos2 sort -t: +2 -3 sortdat Beispiele : sort -t: +2 -3 +3r -4 sortdat \__/________________ aufsteigend nach 3. Feld (Hauptschlüssel) | | \__/__________ absteigen nach 4. Feld (2. Schlüssel) ls -las | sort -f