sorter kommando i unix med numerisk sortering

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

  • Jeg kiggede for nylig på dette ^^. Men endnu en Q. Hvad gør -k2n? Er det relateret til numerisk sortering? tak.
  • @KasiyA -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.

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.

Skriv et svar

Din e-mailadresse vil ikke blive publiceret. Krævede felter er markeret med *