Jeg har fil1:
"$lvl=57" "$lvl=20" "$lvl=48" "$lvl=17" "$lvl=58"
File2 I ønsker:
"$lvl=17" "$lvl=20" "$lvl=48" "$lvl=57" "$lvl=58"
I utgangspunktet numerisk slags fil1.
Kommentarer
- Når jeg kjører en vanlig Unix
sortpå File1, uten valg, får jeg File2. Hva gjør du annerledes? Hva etterlater du i dette spørsmålet?
Svar
Jeg liker -V –versjon-sort: det oppfører seg veldig bra i mange situasjoner og blander strenger og tall
sort -V
Jeg bruker dette alternativet veldig ofte …
I noen retning , ls -v for versjon-sortering ls.
Svar
Du må fortelle sort -n å sortere på delen etter =:
sort -t = -k 2n
Kommentarer
Svar
Jeg fant ut at du bare kjører sort -h, det vil fungere. De kaller det --human-numberic-sort.
sort -h file1 > file2
Svar
bruk sort:
sort -n file1 > file2
-n, –numeric-sort
sammenlign i henhold til strengens numeriske verdi
sort -g file1 > file 2
-g, –general-numeric-sort
Kommentarer
- Nei, alle disse linjer har samme rangering med
sort -nsiden de ikke ' t begynner med et tall. Grunnen til at den sorterer dem er siste-utvei full-line sortering (leksikalt, ikke numerisk) gjort for linjer med samme rangering. Det ville sortert"$lvl=17"før"$lvl=2". - @St é phaneChazelas takk for at du påpekte.
- For å omskrive, er
-nog-goverflødige her da inngangen ikke er numerisk . Så dette svaret er misvisende, derav downvote (merk også at-gog de lange alternativene er GNU-spesifikke). - men -g er god generelt-numerisk- sorter
- At ' fortsatt er for å sortere numeriske verdier, er forskjellen med
-nat den ' er ikke begrenset til desimaltall. Det vil fremdeles sortere"$lvl=17"før"$lvl=2"som en del av sorteringen i siste utvei.
Svar
sort -n er det du vil bruke. Det sorterer etter hvert som vi sorterer tall. sort -k 2 -n file1
Kommentarer
- Men OP-en vil sortere i stigende rekkefølge, som er standard. Hvorfor foreslår du omvendt rekkefølge?
- det ovennevnte er riktig når felt er atskilt med faner eller mellomrom og ikke fungerer i OP ' sak.
-k2n? Forholder det seg til numerisk sortering? takk.-kdefinerer en sorteringsnøkkel. Se mannssiden for detaljer.-k2ndefinerer en sorteringstast som starter ved det andre feltet og slutter på slutten av linjen og gjør det til en numerisk sorteringstast.