GNU/Linux >> Znalost Linux >  >> Linux

Jak spočítat počet bajtů v souboru seskupením stejných bajtů?

Toto používá od k zobrazení jedné hexadecimální hodnoty na řádek, poté setřídí a počítá:

od -t x1 -w1 -v -An mybinaryfile | sort | uniq -c

(-w1 je rozšíření, není nařízeno POSIX.)


Použití Perlu k rozbalení uskupeného souboru do bajtového pole a poté použití hash k počítání jedinečných bajtů:

printf '\xA0\x01\x00\xFF\x77\x01\x77\x01\xA0' | 
  perl -0777 -nE '
    @bytes = unpack("C*",$_) 
    }{ 
    $counts{$_}++ for @bytes; 
    for $k (sort { $a <=> $b } keys %counts) {
      printf "%02X: %d\n", $k, $counts{$k}
    }
 '
00: 1
01: 3
77: 2
A0: 2
FF: 1

Pokud je dostatečně aktuální verze List::MoreUtils je k dispozici, můžete být schopni zjednodušit počítání pomocí jeho frequency funkce.


Linux
  1. Jak přidat nový řádek na konec souboru?

  2. Jak spočítat počet souborů v adresáři a odstranit nejstarší, pokud počet překročí 5?

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

  1. Jak získat pouze počet řádků souboru

  2. Spočítejte počet znaků, slov a řádků v PowerShellu

  3. Jak mohu spočítat počet složek na jednotce pomocí Linuxu?

  1. Jak zkopírovat soubor a vytvořit cílové adresáře současně?

  2. Jak spočítat počet řádků v souboru po zápase Grep?

  3. Jak počítat počet řádků v souboru v Linuxu (příklady wc a nl)