Ik heb file1:
"$lvl=57" "$lvl=20" "$lvl=48" "$lvl=17" "$lvl=58"
File2 I want:
"$lvl=17" "$lvl=20" "$lvl=48" "$lvl=57" "$lvl=58"
In wezen numeriek soort bestand1.
Opmerkingen
Antwoord
Ik vind -V –version-sort: het gedraagt zich in veel situaties heel goed door strings en getallen te mixen
sort -V
Ik gebruik deze optie heel vaak …
In de een of andere richting , ls -v
for version-sort ls
.
Antwoord
U moet sort -n
vertellen om te sorteren op het gedeelte achter de =
:
sort -t = -k 2n
Reacties
- Ik keek onlangs naar dit ^^. Maar nog een Q. Wat doen
-k2n
? Heeft dat te maken met numeriek sorteren? dank je. - @KasiyA
-k
definieert een sorteersleutel. Zie de man-pagina voor details.-k2n
definieert een sorteersleutel die begint bij het tweede veld en eindigt aan het einde van de regel en maakt er een numerieke sorteersleutel van.
Answer
Ik ontdekte dat je gewoon sort -h
uitvoert, het zal werken. Ze noemen het --human-numberic-sort
.
sort -h file1 > file2
Answer
use sort:
sort -n file1 > file2
-n, –numeric-sort
vergelijk volgens de numerieke waarde van de string
sort -g file1 > file 2
-g, –general-numeric-sort
Reacties
- Nee, al die regels hebben dezelfde rangorde met
sort -n
aangezien ze niet ' beginnen met een cijfer. De reden dat het ze sorteert, is de volledige lijnsortering in laatste instantie (lexicaal, niet numeriek) voor regels met dezelfde rangorde. Dat zou"$lvl=17"
sorteren voor"$lvl=2"
. - @St é phaneChazelas bedankt voor het wijzen.
- Om te parafraseren,
-n
en-g
zijn hier overbodig omdat de invoer niet numeriek is . Dus dit antwoord is misleidend, vandaar de downvote (merk ook op dat-g
en de lange opties GNU-specifiek zijn). - maar -g is goed algemeen-numeriek- sort
- Dat ' nog steeds is voor het sorteren van numerieke waarden, het verschil met
-n
is dat het ' is niet beperkt tot decimale gehele getallen. Dat zou nog steeds"$lvl=17"
voor"$lvl=2"
sorteren als onderdeel van de sortering in laatste instantie.
Antwoord
sort -n
is wat je wilt gebruiken. Het wordt gesorteerd zoals we getallen sorteren. sort -k 2 -n file1
Reacties
- Maar het OP wil in oplopende volgorde sorteren, wat de standaard is. Waarom stel je de omgekeerde volgorde voor?
- het bovenstaande is correct wanneer velden worden gescheiden door tabs of spaties en niet werken in OP ' s geval.
sort
op je File1 draai, zonder opties, krijg ik je File2. Wat doe je anders? Wat laat je weg bij deze vraag?