Tentei classificar o conteúdo de um arquivo no Ubuntu desktop 14.04 (Trusty Tahr). No meu caso, o resultado esperado deve ser o mesmo do conteúdo original, mas o resultado real não é. Por quê?
# cat test.txt
a++-a
a++-b
a++-c
ab
ac
# cat test.txt | sort
a++-a
ab
a++-b
ac
a++-c
command-line
sort
user2909884
fonte
fonte
cat
.cat test.txt | sort
porsort test.txt
:)cat
para começar. Por exemplocat FILE | grep dev | sort
, somente as linhas com "dev" serão exibidas (em ordem classificada). Usarsort FILE | grep dev
produz a mesma saída, mas colorida.Respostas:
Você pode usar a
LC_ALL
variável, configurá-la paraLC_ALL=C
antes de chamarsort
Leia esta resposta, se você quiser saber o que é isso magicamente
LC_ALL=C
. Aqui está um breve resumo:Além disso, como apontou o @KenMollerup, cite
man sort
Portanto, ao usar classificar com
LC_ALL=C
, classifique os símbolos de comparação bytewise. Caso contráriosort
, ignorará todos os caracteres não alfanuméricos.fonte
man sort
. Eu não percebi issoA classificação usa classificação alfabética e numérica, assim como nós, caracteres especiais como + - <> ... são ignorados, os números são tratados numéricos de modo que 1, 2, 3 .. vem antes de 11, 12 1066 1104 - veja!
Portanto, sua lista é vista como: aa, ab, ab, ac, ac
fonte
man sort
, adicionar exemplos.