www.wikidata.de-de.nina.az
sort usr bin sort ist ein Programm mit dem Datenstrome oder Dateien sortiert zusammengefuhrt oder auf eine bereits vorliegende Sortierung uberpruft werden konnen Sortierungsschlussel konnen alphabetisch oder numerisch sein und konfigurierbare Teile der Eingabe zeilen in ebenfalls konfigurierbarer Reihenfolge umfassen Der Funktionsumfang wie auch die Funktionsweise von sort ist fur UNIX Systeme durch den POSIX Standard geregelt 1 dagegen weist das GNU sort einige Abweichungen von diesem Standard auf Die Single UNIX Specification listet das Utility sort als mandatory notwendigen Bestandteil und spezifiziert sein erwartbares Verhalten 2 Inhaltsverzeichnis 1 Arbeitsweise 1 1 Eingabe und Ausgabeverhalten Ruckgabewerte 2 Hinweise zur Verwendung 2 1 Veraltete Methoden der Schlusseldefinition 2 2 Einflusse auf die Sortierreihenfolge 2 3 Fuhrende Leerzeichen 3 EinzelnachweiseArbeitsweise Bearbeitensort 3 arbeitet zeilenorientiert Gegenstande der Sortierung sind sogenannte Records entspricht Zeilen die durch Newline Zeichen getrennt sind Jeder solche Record besteht seinerseits aus Fields die durch Field Separators getrennt sind Der Default fur den Field Separator ist das blank es kann aber auch jedes andere Zeichen uber die Kommandozeilen Option t lt char gt gewahlt werden Sortierschlussel werden definiert indem ein Feld oder auch ein Teil davon etwa das dritte bis funfte Zeichen eines bestimmten Feldes und die dazugehorige Sortiermethode alphabetisch oder numerisch angegeben wird Komplexe Sortierungsschlussel konnen aus mehreren aufeinanderfolgenden solchen Einzelschlusseln aufgebaut werden Zum Beispiel kann nach einem Datumsfeld im Format TT MM JJJJ sortiert werden indem numerisch primar nach dem 7 11 Zeichen als Sekundarschlussel nach dem 4 5 Zeichen und als Tertiarschlussel nach dem 1 2 Zeichen sortiert wird die Option n am Anfang definiert alle nachfolgenden Schlussel als numerisch sort n k 1 7 1 11 k 1 4 1 5 k 1 1 1 2 path to input Wird nichts anderes explizit angegeben so gilt der nach der letzten Schlusseldefinition anschliessende Rest der Zeile als letzter Teilschlussel im Extremfall wenn uberhaupt kein Schlussel definiert wird bedeutet dies dass sort nach dem gesamten Record sortiert Ist dies nicht gewunscht so muss das Schlusselende ausdrucklich angegeben werden sort k 2 path to input sortiert nach Feld 2 bis Zeilenende sort k 2 2 path to input sortiert ausschliesslich nach Feld 2 Alphabetische Sortierungen werden von den Internationalisierungs Einstellungen insbesondere den Variablen LANG bzw LC ALL LC COLLATE usw erheblich beeinflusst auch numerische Sortierungen reagieren in ihrem Verhalten auf den jeweiligen Wert von LC NUMERIC Siehe auch Alphabetische Sortierung Wie die meisten im POSIX Standard definierten UNIX tools entspricht auch sort den Utility Syntax Guidelines 1 4 allerdings mit der Ausnahme der Guideline 9 Ausserdem werden sowohl wie auch als option delimiter akzeptiert Eingabe und Ausgabeverhalten Ruckgabewerte Bearbeiten sort schreibt seine Ausgabe sollte nichts anderes angegeben werden nach stdout und Fehlermeldungen nach stderr Diese Ausgaben konnen mit den ublichen Mitteln Pipeline Redirection umgelenkt werden Daruber hinaus steht der Switch o lt file gt zur Verfugung der eine definierte Datei als Ziel der Standard Ausgabe festlegt sort nimmt als Eingabe entweder einen Datenstrom auf stdin oder ein oder mehrere Dateien als Argument entgegen Werden mehrere Dateien angegeben so konnen diese im Zuge der Sortierung zu einer einzigen Ausgabedatei zusammengefuhrt werden Der spezielle Dateiname bedeutet stdin sodass ein Datenstrom auch mit anderen Dateien zusammengefuhrt werden kann Neben den ublichen Ruckgabewerten 0 Erfolg und gt 1 immanente Fehlerbedingung kann wenn die Sortierung einer Datei lediglich uberpruft wird auch der Wert 1 zuruckgegeben werden Dieser bedeutet dass die angegebene Datei hinsichtlich des angegebenen Kriteriums nicht sortiert ist Hinweise zur Verwendung BearbeitenVeraltete Methoden der Schlusseldefinition Bearbeiten Das ursprungliche sort kannte die heute ubliche und standardisierte Form der Schlusseldefinition uber multiple k lt Teilschlussel gt Ausdrucke nicht Stattdessen wurde der Schlusselbeginn mit dem Switch N M das Ende des jeweiligen Teilschlussels mit N M angegeben wobei N die null basierte Nummer des Feldes M die ebenfalls null basierte Nummer des Zeichens innerhalb des Feldes darstellt Das folgende Beispiel bietet dieselbe Schlusseldefinition in alter und neuer Schreibweise Es sortiert das User Verzeichnis etc passwd numerisch n nach dem 3 Feld der User ID wobei als Field Separator dient t sort t n 2 3 etc passwd sort t n k 3 3 etc passwd Diese Methode ist in bestehenden Scripten noch sehr haufig zu sehen dennoch wird von ihrem Gebrauch mittlerweile abgeraten Auch wenn die meisten heutigen Implementierungen diese Schreibweise noch verstehen so ist sie dennoch nicht mehr Bestandteil des POSIX Standards und portable Scripte sollten sie deshalb nicht voraussetzen Einflusse auf die Sortierreihenfolge Bearbeiten Neben der grundsatzlichen Unterscheidung in alphanumerische und numerische Sortierung und den bereits erwahnten Internationalisierungs Variablen stehen dem Benutzer noch eine Reihe weiterer Moglichkeiten zur Verfugung die Sortierreihenfolge zu beeinflussen Dies kann jeweils fur die gesamte Sortierung global uber eine Option oder nur fur einen Teilschlussel durch einen nachgestellten Modifikator geschehen Option und Modifikator lauten dabei jeweils gleich sort n k 3 3 k 4 4 path to input n gilt global fur beide Schlussel sort k 3 3n k 4 4 path to input n gilt lediglich fur den ersten Teilschlussel Folgende Modifikatoren stehen zur Verfugung b ignore leading blanks fuhrende Leerzeichen werden ignoriert was auch fur Schlussel gilt die nicht mit dem ersten Zeichen des Feldes beginnen Die Schlusseldefinition k 2 2b 2 lasst den Sortierschlussel etwa mit dem zweiten nicht Blank des zweiten Feldes beginnen und mit dem letzten Zeichen des zweiten Feldes enden d dictionary Worterbuchartige Sortierung Dabei werden ausschliesslich alphanumerische Zeichen und Blanks berucksichtigt wobei der Wert von LC CTYPE festlegt was unter alphanumerisch verstanden wird f fold lowercase to uppercase Schaltet die Case Sensitivity Unterscheidung von Gross und Kleinbuchstaben aus indem Zeichen die einen Grossbuchstaben als Aquivalent haben so sortiert werden als waren sie durch jenen ersetzt LC CTYPE legt fest welche Zeichenpaare dabei korrespondieren i ignore unprintables ahnlich wie d stattdessen werden alle nicht druckbaren Zeichen ignoriert Auch hier legt LC CTYPE fest was unter nicht druckbar verstanden wird n numerical statt der alphanumerischen Sortierung wird numerisch sortiert r reverse kehrt die Sortierreihenfolge um Statt absteigend wird aufsteigend sortiert dd Fuhrende Leerzeichen Bearbeiten Fur Verwirrung sorgt regelmassig die unterschiedliche Behandlung fuhrender Leerzeichen je nachdem ob t auf der Kommandozeile angegeben wird oder nicht Insbesondere dann wenn als Field Separator das Blank angegeben wird was scheinbar den Default widerspiegelt Dieser ist jedoch der Wechsel zwischen einem anderen Zeichen und einem Blank Wird t nicht angegeben so wird der fuhrende Field Separator dem jeweiligen Feld zugeschlagen deshalb werden fuhrende Blanks dem ersten Feld zugerechnet wahrend sie ansonsten wie andere Zeichen behandelt werden und im Falle von t als Field Separator fungieren Hingegen wird bei Angabe von t der Field Separator nicht als Teil des Felds betrachtet Der POSIX Standard fuhrt in seinen erklarenden Hinweisen folgendes Beispiel an Blanks als lt b gt reprasentiert 1 sort lt lt EOF lt b gt lt b gt foo EOF erstes Feld lt b gt lt b gt foo zweites Feld leer drittes Feld leer sort t lt b gt lt lt EOF lt b gt lt b gt foo EOF erstes Feld leer zweites Feld leer drittes Feld foo Einzelnachweise Bearbeiten a b c sort Spezifikation der Open Group Abgerufen am 2 Mai 2013 englisch UNIX Commands amp Utilities Interface Table Abgerufen am 3 Mai 2013 englisch Hier und im Folgenden wird wenn nicht ausdrucklich angegeben das POSIX sort beschrieben The Open Group Base Specifications Issue 7 2018 edition Kap 12 Utility Conventions Abgerufen am 15 Mai 2019 englisch Unix Befehle der GNU Core UtilitiesDateien chgrp chown chmod cp dd df dir dircolors install ln ls mkdir mkfifo mknod mv rm rmdir shred sync touch vdirText awk cat cksum comm csplit cut expand fmt fold head join md5sum nl od paste ptx pr sha1sum sed sort split sum tac tail tr tsort unexpand uniq wcShell basename chroot date dirname du echo env expr factor false groups hostid id link logname nice nohup pathchk pinky printenv printf pwd readlink seq sleep stat stty tee test true tty uname unlink users who whoami yes Abgerufen von https de wikipedia org w index php title Sort Unix amp oldid 222655924