classificar por meio de maiúsculas e minúsculas

32

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?

    
por Xiè Jìléi 20.08.2010 / 06:28

2 respostas

29

Substituir a ordem de intercalação.

echo -e "c\nb\nB\na" | LC_COLLATE=C sort
    
por 20.08.2010 / 06:38
10

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):

  1. echo -e "d\nD\nc\nb\nB\na" | sort
  2. echo -e "d\nD\nc\nb\nB\na" | sort --ignore-case
  3. echo -e "d\nD\nc\nb\nB\na" | LC_COLLATE=C sort
  4. 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
    
por 20.08.2010 / 09:37

Tags