Risposte:
Devi dire sort -n
di ordinare sulla parte dopo il =
:
sort -t = -k 2n
-k2n
? È correlato all'ordinamento numerico? grazie.
-k
definisce una chiave di ordinamento. Vedi la pagina man per i dettagli. -k2n
definisce una chiave di ordinamento che inizia dal secondo campo e termina alla fine della riga e la rende una chiave di ordinamento numerica.
usa ordinamento:
sort -n file1 > file2
-n, --numeric-sort
compare in base al valore numerico della stringa
sort -g file1 > file 2
-g, --general-numeric-sort
sort -n
poiché non iniziano con un numero. Il motivo per cui li ordina è l'ordinamento a riga intera dell'ultima risorsa (lessicamente, non numericamente) fatto per le linee con lo stesso ranking. Sarebbe ordinato "$lvl=17"
prima "$lvl=2"
.
-n
e -g
qui sono ridondanti poiché l'input non è numerico. Quindi questa risposta è fuorviante, quindi il downvote (nota anche che -g
e le opzioni lunghe sono specifiche GNU).
-n
è che non è limitato agli interi decimali. Questo sarebbe ancora sorta "$lvl=17"
, prima "$lvl=2"
come parte della ultima istanza di smistamento.
Ho scoperto che, corri sort -h
, funzionerà. Lo chiamano --human-numberic-sort
.
sort -h file1 > file2
sort -n
è quello che vuoi usare. Si ordina mentre ordiniamo i numeri.sort -k 2 -n file1
sort
eseguo un semplice Unix sul tuo File1, senza opzioni, ottengo il tuo File2. Cosa stai facendo diversamente? Cosa stai lasciando fuori da questa domanda?