GNU/Linux >> Znalost Linux >  >> Linux

Jak seřadit soubor na základě jeho číselných hodnot pro pole?

Podívejte se na manuálovou stránku pro řazení...

   -n, --numeric-sort
          compare according to string numerical value

Zde je příklad...

sort -n filename

Pokud třídíte řetězce, které jsou smíšeným textem a čísly, například názvy souborů průběžných protokolů, pak třídíte pomocí sort -n nefunguje podle očekávání:

$ ls |sort -n
output.log.1
output.log.10
output.log.11
output.log.12
output.log.13
output.log.14
output.log.15
output.log.16
output.log.17
output.log.18
output.log.19
output.log.2
output.log.20
output.log.3
output.log.4
output.log.5
output.log.6
output.log.7
output.log.8
output.log.9

V takovém případě možnost -V dělá trik:

$ ls |sort -V
output.log.1
output.log.2
output.log.3
output.log.4
output.log.5
output.log.6
output.log.7
output.log.8
output.log.9
output.log.10
output.log.11
output.log.12
output.log.13
output.log.14
output.log.15
output.log.16
output.log.17
output.log.18
output.log.19
output.log.20

z manuálové stránky:

   -V, --version-sort
          natural sort of (version) numbers within text

Linux
  1. Jak uložit výstup příkazu do souboru v Linuxu

  2. Jak filtrovat záznamy v souboru protokolu na základě časového období

  3. Jak vyprázdnit soubor protokolu v Linuxu

  1. Jak spočítat počet jedinečných hodnot pole v textovém souboru odděleném tabulátory?

  2. Jak přesměrovat výstup system() do souboru?

  3. Zachyťte výstup nethogs do souboru protokolu

  1. Jak přesměrovat výstup programu jako jeho vstup

  2. Jak vytisknout výstup příkazu Linuxu do souboru?

  3. Jak vytisknu (numerické) hodnoty ASCII každého znaku v souboru?