sort

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