Ebbe már én is belefutottam.
A nyelvi fájlokban a rendezési szabály is benne van. Vagy megszerkeszted a /usr/share/i18n/locales/hu_HU fájl LC_COLLATION résznél kezdődő szabályait (fogalmam sincs hogyan működik) vagy lecseréled a rendezéshez használt locale-t. Viszont a C locale előre veszi a nagybetűs találatokat. Pl.:
Magyar rendezés:
printf '!a\n_a\naa\nBa\na0\na\n0a' | LC_COLLATE=hu_HU.utf8 sort
0a
a
_a
!a
a0
aa
Ba
C locale:
printf '!a\n_a\naa\nBa\na0\na\n0a' | LC_COLLATE=C sort
!a
0a
Ba
_a
a
a0
aa
Valami ilyen lenne az igazi:
printf '!a\n_a\naa\nBa\na0\na\n0a' | LC_COLLATE=C sort --ignore-case
!a
0a
a
a0
aa
Ba
_a
Azt megteheted, hogy használod a C locale rendezését, és amit ki szeretnél emelni, azt nagybetűvel kezded (ezért látni néhány projektben README és LICENSE nevű fájlokat). Az adott munkamenetre való megváltoztatáshoz terminálba:
export LC_COLLATE=C
. Csak az újonnan nyitott alkalmazásokra lesz ez érvényes, ezért érdemes ezt a parancsot berakni a ~/.bashrc be vagy ~/.profile ba.