Substituir a ordem de intercalação.
echo -e "c\nb\nB\na" | LC_COLLATE=C sort
O utilitário sort
no Ubuntu 10.04 (Lucid) sempre classifica por maiúsculas e minúsculas, assim como se você especificasse --ignore-case
para ele.
The two sort just give the same result:
echo -e "c\nb\nB\na" | sort
echo -e "c\nb\nB\na" | sort --ignore-case
Mas às vezes eu quero classificar por maiúsculas e minúsculas, então as letras maiúsculas vêm em primeiro lugar e, em seguida, as minúsculas. É possível?
Curiosamente, ainda há outra ordem de classificação disponível assim:
echo -e "c\nb\nB\na" | LC_COLLATE=C sort --ignore-case
que coloca a letra maiúscula antes da letra minúscula correspondente.
Aqui está uma comparação de suas saídas (adicionei "d" e "D") no en_US.UTF-8
locale (exceto onde substituído):
echo -e "d\nD\nc\nb\nB\na" | sort
echo -e "d\nD\nc\nb\nB\na" | sort --ignore-case
echo -e "d\nD\nc\nb\nB\na" | LC_COLLATE=C sort
echo -e "d\nD\nc\nb\nB\na" | LC_COLLATE=C sort --ignore-case
Saída:
1 2 3 4
- - - -
a a B a
b b D B
B B a b
c c b c
d d c D
D D d d
Tags linux