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