De acordo com o manual comm
, "Antes de 'comm' poder ser usado, os arquivos de entrada devem ser classificados usando a seqüência de intercalação especificada pela localidade 'LC_COLLATE'."
E o sort
manual: "A menos que seja especificado de outra forma, todas as comparações usam a sequência de intercalação de caracteres especificada pela localidade 'LC_COLLATE'.
Portanto, e um teste rápido confirma, a LC_COLLATE
order comm
expects é fornecida pela ordem padrão de sort
, tipo de dicionário.
sort
pode classificar arquivos de várias maneiras:
-
-d
: ordem do dicionário - ignora tudo, menos o espaço em branco e alfanuméricos. -
-g
: numérico geral - alfa, depois números negativos e, em seguida, positivos. -
-h
: legível para humanos - negativo, alfa, positivo. %código% -
n < nk = nK < nM < nG
: numérico - negativo, alfa, positivo.-n
,k
,M
, etc. não são especiais. -
G
: versão - positiva, limite, inferior, negativo. %código% -
-V
: não diferencia maiúsculas de minúsculas. -
1 < 1.2 < 1.10
: Aleatório - embaralhe a entrada. -
-f
: Reverse - normalmente usado com-R
Existem outras opções, é claro, mas estas são as que você provavelmente verá ou precisará.
Seu teste mostra que a ordem de classificação padrão é provavelmente -r
, ordem do dicionário.
d | g | h | n | V
------+-------+-------+-------+-------
1 | a | -1G | -10 | 1
-1 | A | -1k | -5 | 1G
10 | z | -10 | -1 | 1g
-10 | Z | -5 | -1g | 1k
1.10| -10 | -1 | -1G | 1.2
1.2 | -5 | -1g | -1k | 1.10
1g | -1 | a | a | 5
1G | -1g | A | A | 10
-1g | -1G | z | z | A
-1G | -1k | Z | Z | Z
1k | 1 | 1 | 1 | a
-1k | 1g | 1g | 1g | z
5 | 1G | 1.10 | 1G | -1
-5 | 1k | 1.2 | 1k | -1G
a | 1.10 | 5 | 1.10 | -1g
A | 1.2 | 10 | 1.2 | -1k
z | 5 | 1k | 5 | -5
Z | 10 | 1G | 10 | -10