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"
Grundlæggende numerisk slags fil1.
Kommentarer
- Når jeg kører en almindelig Unix
sort
på din File1 uden valgmuligheder, får jeg din File2. Hvad laver du anderledes? Hvad lader du ude af dette spørgsmål?
Svar
Jeg kan godt lide -V –version-sort: det opfører sig meget godt i mange situationer ved at blande strenge og tal
sort -V
Jeg bruger denne mulighed meget ofte …
I nogle retninger , ls -v
til version-sort ls
.
Svar
Du skal fortælle sort -n
at sortere på delen efter =
:
sort -t = -k 2n
Kommentarer
Svar
Jeg fandt ud af, at du bare kører sort -h
, det fungerer. De kalder det --human-numberic-sort
.
sort -h file1 > file2
Svar
brug sort:
sort -n file1 > file2
-n, –numeric-sort
sammenlign efter strengens numeriske værdi
sort -g file1 > file 2
-g, –general-numeric-sort
Kommentarer
- Nej, alle disse linjer har samme placering med
sort -n
, da de ikke ' ikke starter med et tal. Årsagen til, at det sorterer dem, er sidste-udvejsserien i fuld linje (leksikalt, ikke numerisk) udført for linjer med samme placering. Det ville sortere"$lvl=17"
før"$lvl=2"
. - @St é phaneChazelas tak for at påpege.
- For at omskrive, er
-n
og-g
overflødige her, da input ikke er numerisk . Så dette svar er vildledende, derfor downvote (bemærk også, at-g
og de lange muligheder er GNU-specifikke). - men -g er god generelt-numerisk- sorter
- At ' stadig er til sortering af numeriske værdier, er forskellen med
-n
at den ' er ikke begrænset til decimaltal. Det vil stadig sortere"$lvl=17"
før"$lvl=2"
som en del af sorteringen efter sidste udvej.
Svar
sort -n
er det, du vil bruge. Det sorterer, når vi sorterer tal. sort -k 2 -n file1
Kommentarer
- Men OPen vil sortere i stigende rækkefølge, hvilket er standard. Hvorfor foreslår du omvendt rækkefølge?
- ovenstående er korrekt, når felter er adskilt med faner eller mellemrum og fungerer ikke i OP ' s sag.
-k2n
? Er det relateret til numerisk sortering? tak.-k
definerer en sorteringsnøgle. Se mandsiden for detaljer.-k2n
definerer en sorteringstast, der starter ved det andet felt og slutter i slutningen af linjen og gør det til en numerisk sorteringstast.