rendezési parancs unix-ben numerikus rendezéssel

Van fájl1:

"$lvl=57" "$lvl=20" "$lvl=48" "$lvl=17" "$lvl=58" 

File2 I akar:

"$lvl=17" "$lvl=20" "$lvl=48" "$lvl=57" "$lvl=58" 

Alapvetően numerikusan rendezi a fájlt1.

Megjegyzések

  • Amikor egy sima Unix sort -t futtatok a File1-en, opciók nélkül, megkapom a File2-t. Mit csinálsz másképp? Mit hagy ki ebből a kérdésből?

Válasz

Tetszik a -V –version-sort: nagyon jól viselkedik sok esetben húrokat és számokat keverve

sort -V 

Nagyon gyakran használom ezt az opciót …

Bizonyos irányban , ls -v a verzió-rendezéshez ls.

Válasz

El kell mondania a sort -n fájlt, hogy rendezze a = utáni részt:

sort -t = -k 2n 

Megjegyzések

  • Nemrégiben ezt néztem ^^. De még egy kérdés. Mit csinál -k2n? Ez összefügg a numerikus rendezéssel? köszönöm.
  • @KasiyA -k egy rendezési kulcsot határoz meg. A részletekért lásd a man oldalt. A -k2n meghatároz egy rendezési kulcsot, amely a második mezőtől kezdődik és a sor végén ér véget, és numerikus rendezési kulcssá teszi.

Válasz

Megállapítottam, hogy csak futtatja a sort -h alkalmazást, ez működni fog. Úgy hívják, hogy --human-numberic-sort.

sort -h file1 > file2 

Válasz

use sort:

sort -n file1 > file2 

-n, –numeric-sort
összehasonlítás a karakterlánc numerikus értéke szerint

 sort -g file1 > file 2 

-g, –general-numeric-sort

Megjegyzések

  • Nem, mindazok a vonalak azonos sorrendben vannak a sort -n ponttal, mivel nem ' nem kezdődnek számmal. A válogatás oka az utolsó sorrendben szereplő teljes soros rendezés (lexikailag, nem numerikusan) az azonos rangsorú sorok esetében. Ez rendezi a "$lvl=17" sort "$lvl=2" előtt.
  • @St é phaneChazelas köszönöm, hogy rámutattál.
  • Átfogalmazva, -n és -g itt felesleges, mivel a bemenet nem numerikus . Tehát ez a válasz félrevezető, ezért a leszavazás (vegye figyelembe azt is, hogy a -g és a hosszú opciók GNU-specifikusak).
  • de -g jó általános-numerikus- rendezés
  • Ez ' továbbra is a numerikus értékek rendezéséhez szükséges, a -n és a ' s nem korlátozódik tizedes egészekre. Ez a "$lvl=17" -et a "$lvl=2" előtt rendezi a legvégső rendezés részeként.

Válasz

sort -n az, amit használni szeretne. Rendez, ahogy a számokat válogatjuk. sort -k 2 -n file1

Megjegyzések

  • De az OP növekvő sorrendben akar rendezni, ami az alapértelmezett. Miért javasol fordított sorrendet?
  • a fentiek helyesek, ha a mezőket tabulátorokkal vagy szóközökkel választják el, és nem működnek az OP ' esetek.

Vélemény, hozzászólás?

Az email címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöltük