GNU/Linux >> Znalost Linux >  >> Linux

Jaké je výchozí pořadí řazení Linuxu?

Zdá se, že používáte národní prostředí jiné než POSIX.

Zkuste:

export LC_ALL=C

a poté sort .

info sort jasně říká:

(1) Pokud používáte jiné než POSIXové národní prostředí (např. nastavením `LC_ALL' na `cs_US'), pak `sort' může produkovat výstup, který je řazen jinak, než jste zvyklí. V takovém případě nastavte proměnnou prostředí `LC_ALL' na `C'. Všimněte si, že nastavení pouze `LC_COLLATE' má dva problémy. Za prvé je neúčinné, pokud je také nastaveno `LC_ALL'. Za druhé, má nedefinované chování, pokud je `LC_CTYPE' (nebo `LANG', pokud `LC_CTYPE' není nastaveno) nastaveno na nekompatibilní hodnotu. Například získáte nedefinované chování, pokud je `LC_CTYPE' `ja_JP.PCK', ale `LC_COLLATE' je `en_US.UTF-8'.


Jako man sort říká, že „pořadí slovníku“ znamená „uvažovat pouze mezery a alfanumerické znaky“. Například s ohledem na data

The
!quick
brown
@fox
jumps
#over
17
$lazy
  dogs
%42
times.

bez ozdob sort příkaz vytváří

  dogs
!quick
#over
$lazy
%42
@fox
17
brown
jumps
The
times.

(vložením řádků začínajících znaky mezery a ! , # , $ , % a @ symboly před řádky, které začínají písmeny a číslicemi, tj. alfanumerickými znaky ), ale sort -d produkuje

  dogs
17
%42
brown
@fox
jumps
$lazy
#over
!quick
The
times.

  dogs je stále první, protože začíná mezerami, ale speciální (interpunkční) znaky jsou ignorovány. 17 je před 42 a fox je mezi brown a jumps ,přestože 42 a fox mít před sebou znaky, které by je normálně posunuly před 17 .
____________
v pořadí jejich hodnot ASCII:space=040, ! =041, # =043, $ =044, % =045 a @ =0100. Všimněte si, že (bez ohledu na mezerník) je to na některých klávesnicích přibližně zleva doprava.


Chcete-li určit pořadí řazení, jednoduše vytvořte soubor s jiným znakem na každém řádku a seřaďte jej. Výsledný výstup vám řekne pořadí řazení.


Linux
  1. Jak změnit výchozí prostředí v Linuxu

  2. Jaký je účel souboru .bashrc v Linuxu

  3. Jaká je definice relace v linuxu?

  1. Co dělá Linux udržitelným OS

  2. příkaz find výchozí pořadí řazení

  3. Co je výchozí shell Busybox?

  1. Čím je linuxová komunita výjimečná?

  2. Linux vs. Unix:Jaký je rozdíl?

  3. Jaké je výchozí heslo obrazovky?