Der "ls" Befehl " Sortieren "a" vor "B" (vs-a->b->A->B)
Ich versuche einen Weg zu finden, um die Ergebnisse der ls-Befehl ausgedruckt werden, in eine groß-und Kleinschreibung Art und Weise.
derzeit ein ls-Befehl Ergebnisse, in:
Apple
Boy
Chart
Dock
apples
boys
charts
docks
was ich will, ist dieses:
Apple
apples
Boy
boys
Chart
charts
Dock
docks
ist das möglich?
- Lustig, einer meiner Frustration ist, dass ich die groß- / Kleinschreibung zu Sortieren das nervt die lebenden daylights aus mir heraus, weil ich bin so verwendet, um die Nutzung der groß-und Kleinschreibung version, um Dateien beginnend mit Großbuchstaben am Anfang der Liste, aber Sie erscheinen nicht mehr. Das ist, weil ich einen
en_US.utf8
Gebietsschema, das ist meist richtig. Also, ich Stimme mit den meisten von Keith ' s Beobachtungen. - Möglich, Duplikat der macOS Terminal: `ls` sortiert die Ergebnisse mit aktivierten Namen zuerst
- wie kann das sein, ein Duplikat? dieser wurde gebeten, 5,5 Jahre her.. die Frage, die Sie Referenz gefragt wurde vor 3 Monaten.. ich denke, du hast es rückwärts.. lol, dieser post ist auch auf die in der akzeptierten Antwort auf Ihren eigenen Beitrag..
- Ich dachte das gleiche wie du, aber dann korrigiert wurde, von Zoe in der hier stackoverflow.com/a/53836993/2884291 (weiter unten in diesem thread).
Du musst angemeldet sein, um einen Kommentar abzugeben.
ls
(zumindest wenn man mit den GNU coreutils-version;ls --version
zu überprüfen) sortiert Dateinamen nach dem aktuellen Gebietsschema.Die Menge der verfügbaren locales variiert von system zu system (
locale -a
für eine Liste), aber auf meinem system:Arten-Namen mit
a
undA
vorb
undB
-- obwohl es vielleicht nicht genau in der Reihenfolge, die Sie suchen.Dies funktioniert sogar, wenn
ls
listet Dateien in mehrere Spalten, etwas, das schwer zu tun mitsort -f
.(Ich habe
$LC_COLLATE
eingestelltC
speziell, so dass locale-sensitive Sortierung erfolgt in ASCII-Reihenfolge.)export
es). Wenn Sie wollen immer die gleichen Einstellungen, hinzufügen den entsprechenden Befehl, um Ihr.bashrc
ist wahrscheinlich der Weg zu gehen. Beachten Sie, dass die Ländereinstellung wird auch Auswirkungen auf shell-wildcard-expansion (echo *
) und sogar diesort
Befehl. Aber mitLC_COLLATE="en_US.UTF-8"
Sie sollte immer die Reihenfolge, die Sie wollen. Was für ein system sind Sie auf?ls
- und andere Befehle reagieren, die locale-Einstellungen.LC_COLLATE=C
funktionierte nicht für mich, aberLC_COLLATE="en_US.UTF-8"
haben. Lege ich das folgende in mein Start-script:export LANG=en_US.UTF-8
export LC_COLLATE="en_US.UTF-8"
LC_COLLATE=C
für Sie zu arbeiten. Es funktioniert für mich, weil ich wollen einfache ASCII-Sortierung, mitA
..Z
vorhergehendena
..z
.$env:LC_COLLATE = 'en_US.utf8'
Dank!Nur Rohr das Ergebnis
sort-f
.ls -R
Als follow-up zu [Keith Thompson]'s Antwort, die ich getestet habe auf einem Linux-system und LC_COLLATE=C funktionierte nicht für mich, aber LC_COLLATE="en_US.UTF-8" haben. Lege ich das folgende in mein Start-script:
Funktionierte dies nicht auf OS X.
Hinzufügen .Profil:
dann können Sie folgenden Befehl verwenden:
t
undr
Optionen sagenls
zu Sortieren chronologisch, älteste zuerst, neueste zuletzt. Die OP will, um nach Namen zu Sortieren, Fall-unempfindlich.