J'ai essayé de trier le contenu d'un fichier dans le bureau Ubuntu 14.04 (Trusty Tahr). Dans mon cas, le résultat attendu devrait être le même que le contenu d'origine, mais le résultat réel ne l'est pas. Pourquoi?
# 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
la source
la source
cat
.cat test.txt | sort
parsort test.txt
:)cat
pour commencer. Par exemplecat FILE | grep dev | sort
, seules les lignes contenant "dev" seront affichées (dans l'ordre trié). L'utilisationsort FILE | grep dev
produit la même sortie mais colorée.Réponses:
Vous pouvez utiliser une
LC_ALL
variable, définissez-la surLC_ALL=C
avant d'appelersort
Lisez cette réponse, si vous voulez savoir ce que c'est par magie
LC_ALL=C
. Voici un bref résumé:En outre, comme l'a souligné @KenMollerup, citez
man sort
Ainsi, lorsque vous utilisez le tri avec
LC_ALL=C
, triez les symboles par octet. Sinonsort
, ignorera tous les caractères non alphanumériques.la source
man sort
. Je ne l'ai pas remarquéLe tri utilise le tri alphabétique et numérique, comme nous, les caractères spéciaux comme + - <> ... sont ignorés, les nombres sont traités numériquement donc 1, 2, 3 .. précède le 11, 12 1066 1104 - voyez!
Donc, votre liste est considérée comme: aa, ab, ab, ac, ac
la source
man sort
, ajoutez des exemples.