Réponses:
Vous devez dire sort -n
de trier la pièce après =
:
sort -t = -k 2n
-k2n
? Est-ce lié au tri numérique? Merci.
-k
définit une clé de tri. Voir la page de manuel pour plus de détails. -k2n
définit une clé de tri commençant au deuxième champ et se terminant à la fin de la ligne et en fait une clé de tri numérique.
utiliser le tri:
sort -n file1 > file2
-n, --numeric-sort
comparer selon la valeur numérique de la chaîne
sort -g file1 > file 2
-g, --general-numeric-sort
sort -n
car elles ne commencent pas par un nombre. La raison pour laquelle il les trie est le tri en ligne de dernier recours (lexicalement et non numériquement) effectué pour les lignes avec le même classement. Cela trierait "$lvl=17"
avant "$lvl=2"
.
-n
et -g
sont redondants ici car l'entrée n'est pas numérique. Cette réponse est donc trompeuse, d'où le downvote (notez également que -g
les options longues sont spécifiques à GNU).
-n
est que ce n'est pas limité aux entiers décimaux. Cela serait toujours trié "$lvl=17"
auparavant "$lvl=2"
dans le cadre du tri de dernier recours.
J'ai trouvé que, vous venez de courir sort -h
, cela fonctionnera. Ils l'appellent --human-numberic-sort
.
sort -h file1 > file2
sort -n
c'est ce que vous voulez utiliser. Il trie comme nous trions les nombres.sort -k 2 -n file1
sort
sur votre File1, sans aucune option, j'obtiens votre File2. Que faites-vous différemment? Que laissez-vous en dehors de cette question?