Also habe ich eine Textdatei namens sortingnames.txt und es sieht so unter dem Befehl cat aus.Wie funktioniert der Sortierbefehl in diesem speziellen Fall?
A. Thaliana
E. Coli
H. sapiens
S. cerevisiae
A thaliana
E Coli
H sapiens
S cerevisiae
A. Thaliana (plant)
E. Coli (Bacteria)
H. Sapiens (Human)
S. Cerevisiae (Yeast)
203 characters?
A. Thaliana Plant
Dann führe ich Sortierbefehl $ sort -k 3.2 sortingnames.txt. Das Ergebnis erscheint so.
203 characters
A thaliana
A. Thaliana
E Coli
E. Coli
H sapiens
H. sapiens
S cerevisiae
S. cerevisiae
E. Coli (Bacteria)
H. Sapiens (Human)
A. Thaliana (plant)
A. Thaliana Plant
S. Cerevisiae (Yeast)
Die Reihenfolge der letzten 5 Zeilen ergibt für mich keinen Sinn. Unter der Annahme, dass die Sortierung keine Interpunktionen wie (der dritte Buchstabe von E. Coli (Bakterien) ist c und die nächste Zeile mit (Mensch) ist m. Der 3. Buchstabe der Pflanzenlinien ist a und für die Hefezeile ist a. .
Und doch ist diese bash kehrt Kann jemand erklären, warum
Was ist Ihre Sprache? Was gibt 'locale' aus? – Kusalananda
'-k 3.2' bedeutet "das dritte Feld, beginnend mit dem Zeichen 2". Es wählt nicht das dritte Zeichen von irgendetwas aus. –
Locale ausgibt LANG = en_US.UTF-8 LC_CTYPE = "en_US.UTF-8" LC_NUMERIC = "en_US.UTF-8" LC_TIME = "en_US.UTF-8" LC_COLLATE = "en_US.UTF-8" LC_MONETARY = "en_US.UTF-8" LC_MESSAGES = "en_US.UTF-8" LC_PAPER = "en_US.UTF-8" LC_NAME = "en_US.UTF-8" LC_ADDRESS = "en_US.UTF-8" LC_TELEPHONE = "en_US.UTF-8" LC_MEASUREMENT = "en_US.UTF-8" LC_IDENTIFICATION = "en_US.UTF-8" LC_ALL = –