Jag har fil1:
"$lvl=57" "$lvl=20" "$lvl=48" "$lvl=17" "$lvl=58"
File2 I vill ha:
"$lvl=17" "$lvl=20" "$lvl=48" "$lvl=57" "$lvl=58"
I grund och botten numeriskt sorterad fil1.
Kommentarer
Svar
Jag gillar -V –version-sort: det beter sig mycket bra i många situationer blandar strängar och siffror
sort -V
Jag använder det här alternativet mycket ofta …
I vissa riktningar , ls -v
för version-sort ls
.
Svar
Du måste säga till sort -n
att sortera på delen efter =
:
sort -t = -k 2n
Kommentarer
- Jag tittade nyligen här ^^. Men en fråga till. Vad gör
-k2n
? Är det relaterat till numerisk sortering? tack. - @KasiyA
-k
definierar en sorteringsnyckel. Se mansidan för mer information.-k2n
definierar en sorteringstangent som börjar vid det andra fältet och slutar i slutet av raden och gör det till en numerisk sorteringstangent.
Svar
Jag fann att du bara kör sort -h
, det fungerar. De kallar det --human-numberic-sort
.
sort -h file1 > file2
Svar
använd sortering:
sort -n file1 > file2
-n, –numeric-sort
jämför enligt strängens numeriska värde
sort -g file1 > file 2
-g, –general-numeric-sort
Kommentarer
- Nej, alla dessa rader har samma ranking med
sort -n
eftersom de inte ' t börjar med ett tal. Anledningen till att det sorterar dem är sista utväg fullradssortering (lexiskt, inte numeriskt) gjort för rader med samma rangordning. Det skulle sortera"$lvl=17"
före"$lvl=2"
. - @St é phaneChazelas tack för att ni påpekade.
- För att parafrasera är
-n
och-g
överflödiga här eftersom ingången inte är numerisk . Så det här svaret är vilseledande, därav downvote (notera också att-g
och de långa alternativen är GNU-specifika). - men -g är bra allmänt numeriskt- sortera
- Att ' fortfarande är för att sortera numeriska värden, skillnaden med
-n
är att den ' är inte begränsat till decimala heltal. Det skulle fortfarande sortera"$lvl=17"
före"$lvl=2"
som en del av den sista utvägsorteringen.
Svar
sort -n
är vad du vill använda. Det sorterar när vi sorterar siffror. sort -k 2 -n file1
Kommentarer
- Men OP vill sortera i stigande ordning, vilket är standard. Varför föreslår du omvänd ordning?
- ovanstående är korrekt när fält är separerade med flikar eller mellanslag och fungerar inte i OP ' s fall.
sort
på din File1, utan alternativ, får jag din File2. Vad gör du annorlunda? Vad lämnar du ut av den här frågan?