Na maioria dos idiomas, s
classifica antes de V
, independentemente do caso.
A classificação depende das configurações de localização ( LANG
e LC_*
variables).
Você pode usar: LC_ALL=C sort
se quiser classificar de acordo com a ordem do valor de byte, mas isso pode não fazer o que você deseja se estiver em uma localidade com vários bytes.
Se você quiser classificar na ordem do seu próprio idioma, mas com letras maiúsculas antes das minúsculas, pode fazer:
sed 's/./0&/g;s/0\([[:lower:]]\)/1/g' |
sort |
sed 's/.\(.\)//g'
Isso faria com que as letras minúsculas fossem classificadas depois de todos os outros caracteres.
$ print -l Q s d é f D É F V | sort
d
D
é
É
f
F
Q
s
V
$ print -l Q s d é f D É F V | sed 's/./0&/g;s/0\([[:lower:]]\)/1/g' |
sort |
sed 's/.\(.\)//g'
D
É
F
Q
V
d
é
f
s
Isso só funcionaria em localidades onde os elementos de agrupamento são apenas caracteres únicos.