Manchmal verhält sich GNU sort nicht wie erwartet. Hier ist ein Beispiel:
> bind | sort
(Dies setzt voraus, dass Sie fish verwenden. In Bash ist das Äquivalent bind -p
.) Alle nicht-alphanumerischen Zeichen in der Ausgabe werden bei der Sortierung grundsätzlich ignoriert, was die Absicht untergräbt. Hier ist ein Beispiel der Ausgabe:
bind --preset \e\b backward-kill-word
bind --preset \eb backward-word
bind --preset \e\[B down-or-search
bind --preset \e\< beginning-of-buffer
bind --preset \e cancel
bind --preset \ec capitalize-word
bind --preset \e\[C forward-char
bind --preset \e\[D backward-char
bind --preset \ed kill-word
\e[a-z]
Ich wollte alle Tastenkombinationen nebeneinander platzieren . Wie ändere ich das Verhalten von sort, sodass streng in ASCII-Reihenfolge sortiert wird und alle Zeichen wie Buchstaben behandelt werden? Ich habe auf der Manpage nachgesehen und nichts Nützliches gefunden.
Antwort1
Du hast recht, völlig zufälliger Fremder. In den Befehlszeilenschaltern von sort gibt es dafür keine Option. Aber sort kann so eingestellt werden. Du musst nur das Gebietsschema ändern:
> bind | LANG=C sort
...
bind --preset \e\x7f backward-kill-word
bind --preset \eb backward-word
bind --preset \ec capitalize-word
bind --preset \ed kill-word
bind --preset \ee edit_command_buffer
bind --preset \ef forward-word
bind --preset \eh __fish_man_page
bind --preset \el __fish_list_current_token
...