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
sort
på 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 -n
siden 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
-n
og-g
overflødige her da inngangen ikke er numerisk . Så dette svaret er misvisende, derav downvote (merk også at-g
og de lange alternativene er GNU-spesifikke). - men -g er god generelt-numerisk- sorter
- At ' fortsatt er for å sortere numeriske verdier, er forskjellen med
-n
at 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.-k
definerer en sorteringsnøkkel. Se mannssiden for detaljer.-k2n
definerer en sorteringstast som starter ved det andre feltet og slutter på slutten av linjen og gjør det til en numerisk sorteringstast.