sort --version-sort filename
Isso preserva a ordem natural dos números.
Eu achei que sort
classificaria os prefixos comuns juntos, mas isso nem sempre acontece. Tome esta entrada por exemplo:
AT0S*eightieths
AT0S*eyetooth's
AT*ad
AT*Ad
AT*AD
AT*Eydie
AT*eyed
ATF*adv
ATF*ATV
ATF*edify
ATF*Ediva
ATFKT*advocate
ATFKTNK*advocating
ATFKT*outfought
ATFKTS*advocates
ATHT*whitehead
ATHT*Whitehead
AT*id
AT*I'd
AT*Ito
AT*IUD
ATJ*adage
ATNXNS*attention's
ATNXNS*attenuation's
ATNXNS*autoignition's
AT*oat
AT*OD
AT*outweigh
AT*owed
ATP0K*idiopathic
ATP*adobe
ATT*wighted
ATT*witted
ATT*wooded
AT*UT
AT*Uta
AT*wowed
AT*Wyatt
ATX*atishoo
Após sort
, esperaria que todos os AT*
terminassem em um bloco, mas quando você executar esses dados por meio de sort
, a saída ==
input. Por que é que? Eu não estou especificando nenhuma opção para ignorar caracteres não-alfabéticos ou qualquer coisa. Apenas sort dict > out
.
Minha versão de sort
vem de coreutils 8.5-1ubuntu3
.
A configuração LC_ALL = C restaurou a ordem de classificação tradicional no meu caso. Pacote: coreutils Versão: 8.5-1ubuntu3
export LC_ALL=C
Funciona como esperado para mim (no cygwin).
sort input > output
resulta em
AT*AD AT*Ad AT*Eydie AT*I'd AT*IUD AT*Ito AT*OD AT*UT AT*Uta AT*Wyatt AT*ad AT*eyed AT*id AT*oat AT*outweigh AT*owed AT*wowed AT0S*eightieths AT0S*eyetooth's ATF*ATV ATF*Ediva ATF*adv ATF*edify ATFKT*advocate ATFKT*outfought ATFKTNK*advocating ATFKTS*advocates ATHT*Whitehead ATHT*whitehead ATJ*adage ATNXNS*attention's ATNXNS*attenuation's ATNXNS*autoignition's ATP*adobe ATP0K*idiopathic ATT*wighted ATT*witted ATT*wooded ATX*atishoo
É um tipo de alias para algo? tente \sort
The locale specified by the environment affects sort order. Set LC_ALL=C to get the traditional sort order that uses native byte values
Com a classificação do GNU, você pode usar --dictionary-order
:
NAME
sort - sort lines of text files
SYNOPSIS
sort [OPTION]... [FILE]...
sort [OPTION]... --files0-from=F
DESCRIPTION
Write sorted concatenation of all FILE(s) to standard output.
With no FILE, or when FILE is -, read standard input.
Mandatory arguments to long options are mandatory for short options too. Ordering options:
-b, --ignore-leading-blanks
ignore leading blanks
-d, --dictionary-order
consider only blanks and alphanumeric characters
Tags sorting