Tri selon le champ de la valeur numérique en Bash
Exemple: contenu de File.txt:
100 foo
2 bar
300 tuu
Lors de l'utilisation de tri -k 1,1 File.txt', l'ordre des lignes n'auront pas changé, bien que nous nous attendons à :
2 bar
100 foo
300 tuu
Comment peut-on trier un champ composé des nombres en fonction de l'absolu numérique valeur?
Vous devez vous connecter pour publier un commentaire.
Prendre un coup d'oeil à la page de man pour le tri...
Voici donc un exemple...
-g, --general-numeric-sort
pourrait être plus souhaitable. Cela permet en outre à la notation scientifique par exemple 1.234E10 etc.Si vous êtes le tri des chaînes qui sont un mélange de texte & nombres, par exemple les noms de fichiers de roulement journaux de tri avec
sort -n
ne fonctionne pas comme prévu:Dans ce cas, l'option
-V
fait le truc:de l'homme page:
ls
parsed
substitutions pour supprimer les lettres et ne laisser que des chiffres, apparemment la couleur de sortie a été touchant les choses ainsi. Le fait d'exécuter lesls --color=never
également fait une différence.-V
est exactement ce que je cherchais. Je devrais prendre l'habitude de regarder à travers les pages de man en premier.Bien, la plupart des autres réponses se réfèrent ici à
Cependant, je ne suis pas sûr que cela fonctionne pour les nombres négatifs. Voici les résultats que j'obtiens avec la version 6.10 sur Fedora 9.
Fichier d'entrée:
De sortie:
Qui n'est évidemment pas commandé par la valeur numérique.
Alors, je suppose qu'une réponse précise serait d'utiliser
sort -n
mais seulement si toutes les valeurs sont positives.P. S.: à l'Aide de
sort -g
renvoie tout de même des résultats pour cette exempleEdit:
Ressemble les paramètres régionaux déterminent la manière dont le signe moins affecte l'ordre (voir ici). Afin d'obtenir des résultats corrects j'ai juste fait:
Vous devez utiliser le numérique option de tri:
Utilisation
sort -n
ousort --numeric-sort
.Vous devez faire la commande suivante:
sort -n -k1 filename
Qui devrait le faire 🙂
Utilisation de tri -nr pour le tri dans l'ordre décroissant. Reportez-vous
Tri
Reportez-vous au-dessus de la page de manuel pour référence ultérieure