příkaz sort v unixu s číselným tříděním

Mám soubor1:

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

Soubor2 I chcete:

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

V zásadě číselně seřadit soubor1.

Komentáře

  • Když na vašem File1 spustím prostý Unix sort, bez možností, dostanu váš File2. Co děláš jinak? Co z této otázky vynecháváte?

Odpovědět

Líbí se mi -V –version-sort: chová se velmi dobře v mnoha situacích, když míchá řetězce a čísla

sort -V 

Tuto možnost používám velmi často …

Nějakým směrem , ls -v pro verzi-sort ls.

Odpovědět

Musíte říct sort -n, aby seřadil podle části po =:

sort -t = -k 2n 

Komentáře

  • Nedávno jsem hledal toto ^ ^. Ale ještě jedno Q. Co dělá -k2n? Týká se to číselného řazení? děkuji.
  • @KasiyA -k definuje klíč řazení. Podrobnosti najdete na manuálové stránce. -k2n definuje klíč řazení, který začíná na druhém poli a končí na konci řádku, a činí z něj číselný klíč řazení.

Answer

Zjistil jsem, že stačí spustit sort -h, bude to fungovat. Říkají tomu --human-numberic-sort.

sort -h file1 > file2 

Odpovědět

použít řazení:

sort -n file1 > file2 

-n, –numeric-sort
porovnat podle číselné hodnoty řetězce

 sort -g file1 > file 2 

-g, –general-numeric-sort

Komentáře

  • Ne, všechny ty řádky mají stejné hodnocení s sort -n, protože nezačínají ' číslem. Důvodem, proč je třídí, je poslední možnost úplného řádkování (lexikálně, ne číselně) provedené pro řádky se stejným hodnocením. To by "$lvl=17" před "$lvl=2".
  • @St é phaneChazelas děkuje za poukázání.
  • Pro parafrázi jsou zde -n a -g nadbytečné, protože vstup není číselný . Tato odpověď je tedy zavádějící, a proto je protihlasovatel (také si všimněte, že -g a dlouhé možnosti jsou specifické pro GNU).
  • ale -g je dobrý general-numeric- třídit
  • To ' stále pro třídění číselných hodnot, rozdíl oproti -n spočívá v tom, že ' se neomezuje na celá desetinná čísla. To by se "$lvl=17" před "$lvl=2" v rámci třídění poslední instance setřídilo.

Odpověď

sort -n je to, co chcete použít. Třídí se, jak třídíme čísla. sort -k 2 -n file1

Komentáře

  • Ale OP chce třídit vzestupně, což je výchozí nastavení. Proč navrhujete obrácené pořadí?
  • Výše uvedené je správné, když jsou pole oddělena kartami nebo mezerami a nebudou fungovat v OP ' s případ.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *