34 votes

Pourquoi "sort" ignore-t-il les caractères spéciaux, comme l'astérisque ?

Je pensais que sort trierait les préfixes communs ensemble, mais cela ne se produit pas toujours. Prenez cette entrée par exemple :

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

Après sort je m'attendais à ce que tous les AT* pour finir en un seul morceau mais quand vous passez ces données à travers sort la sortie == entrée. Pourquoi cela ? Je n'ai pas spécifié d'option pour ignorer les caractères non alphabétiques ou autre. Juste sort dict > out .

Ma version de sort vient de coreutils 8.5-1ubuntu3 .

0 votes

Ça marche pour moi. Peut-être un alias quelque part ?

0 votes

Je peux confirmer que j'ai exactement le même problème sous debian, mais avec des virgules, ça me rend fou. Comment trier csvs quand il se comporte comme ça par défaut ?

0 votes

@Owl Utilisez l'outil approprié pour le travail : xsv ou csvkit.

0voto

Avec GNU sort, vous pouvez utiliser --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

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X