これは od を使用して 1 行に 1 つの 16 進数値を表示し、並べ替えてカウントします:
od -t x1 -w1 -v -An mybinaryfile | sort | uniq -c
(-w1
は拡張機能であり、POSIX では義務付けられていません。)
Perl を使用して丸呑みファイルをバイト配列にアンパックし、ハッシュを使用して一意のバイト数をカウントします:
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
List::MoreUtils
の十分に新しいバージョンの場合 frequency
を使用してカウントを簡素化できる場合があります。 関数。