SORT [(line1 line2)] [[A|D] [I] [N] where, [A|D] [I] [N] where, ...] SORTMit dem Befehl SORT kannst du Sätze sortieren. Das Befehlswort ist nicht abkürzbar, damit du den Befehl, der im allgemeinen ja nicht rückgängig gemacht werden kann, nicht so leicht aus Versehen geben kannst.
Fehlt die Angabe (line1 line2), so wird der ganze workfile sortiert. Mit (line1 line2) kannst du das Sortieren auf einen Teil der Sätze beschränken. Die Nummern können Satznummern sein, die auch ohne führende Nullen geschrieben werden können, oder sie können symbolische Nummern sein, wie sie zum Beispiel bei dem Befehl COPY beschrieben sind. Die erste Nummer darf nicht größer sein als die zweite.
Beispiele
sort (500 b) ... | sortiert die Zeilen von der Nummer 500 bis zum Ende, | |
sort (f n) ... | sortiert die Zeilen von der ersten bis zur Zeile nach der aktuellen. |
Die Sortierrichtung wird durch A (= ascending) für aufsteigend und D (= descending) für absteigend angegeben. Sie kann für jedes Sortierfeld einzeln festgelegt werden. Lässt du sie weg, so nimmt exaEdit A (aufsteigend) an.
Soll Groß-/Kleinschreibung nicht beachtet werden, so musst du die Angabe I (case insensitive) verwenden. Auch sie muss bei Bedarf für jedes Sortierfeld einzeln angegeben werden.
Enthalten die zu sortierenden Felder Zahlen, nach deren Wert zu sortieren ist, so musst du die Angabe N (numerisch) verwenden. Auch sie muss bei Bedarf für jedes Sortierfeld einzeln angegeben werden. Beim numerischen Sortieren gibt es noch folgenden Besonderheit: Der Satz oder das angegebene Feld wird vor dem Vergleich als Zahl interpretiert. Die Umwandlung wird mit der Funktion atof der Programmiersprache C vorgenommen. Dies bedeutet, dass die Interpretation (auch vor dem Satz- oder Feldende) vor dem ersten Zeichen endet, das nicht als zur Zahl gehörig erkannt wird. Es bedeutet außerdem den Wert 0, wenn keine Zahl vorliegt, einen unbestimmten Wert, wenn es zum Überlauf kommt (die Zahl also zu groß wäre), die Akzeptanz von führenden Zwischenraumzeichen (das sind Leerzeichen, Tabulatorzeichen, Zeilensprung, Seitenvorschub und Zeilenendekennung) und die Möglichkeit, die Zahlen mit und ohne Dezimalpunkt und mit und ohne Exponent zu schreiben.
Für die Angabe der Sortierfelder (das where in der SORT-Syntax) gibt es 2 Möglichkeiten:
anfangsspalte länge
anfangsspalte : endspalte
Schließlich kannst du noch zwischen die Sortierfeldangaben zur besseren Lesbarkeit eines der Zeichen Komma, Strichpunkt oder Schrägstrich setzen (wenn es sich nicht um den Befehlsseperator handelt).
Einige Beispiele:
sort d
sort 16:18, 24:26
sort 1 5, d 6 5
sort(300b)16 8
sort d(1 3 4:10
sort n(1 5/6:10) d 11:15 / 16 5
Hat exaEdit erfolgreich sortiert, so erfolgt die Meldung
Sortiert
Erste Nummer größer als zweite
Nummer ... nicht gefunden
Es gibt keinen vorigen (p) Satz
Es gibt keinen folgenden (n) Satz
Die top line kannst du nicht mitsortieren
Anfangsspalte größer als Endspalte
Sortierfelder überlappen