sorter kommando i unix med numerisk sortering (Norsk)

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

  • Jeg så nylig på dette ^^. Men en til. Hva gjør -k2n? Forholder det seg til numerisk sortering? takk.
  • @KasiyA -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.

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.

Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *