GNU/Linux >> Belajar Linux >  >> Linux

Bagaimana cara menghitung jumlah byte dalam sebuah file, mengelompokkan byte yang sama?

Ini menggunakan od untuk menampilkan satu nilai hex per baris, lalu mengurutkan dan menghitung:

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

(-w1 adalah ekstensi, tidak diamanatkan oleh POSIX.)


Menggunakan Perl untuk membongkar file yang diambil ke array byte dan kemudian menggunakan hash untuk menghitung byte unik:

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

Jika versi List::MoreUtils cukup baru tersedia, Anda mungkin dapat menyederhanakan penghitungan dengan menggunakan frequency fungsi.


Linux
  1. Bagaimana Menyalin File Dan Membuat Direktori Target Pada Saat Yang Sama?

  2. Bagaimana Menghitung Jumlah Baris Dalam File Setelah Pertandingan Grep?

  3. Bagaimana cara menambahkan output ke file?

  1. Bagaimana saya bisa menghitung jumlah karakter dalam variabel Bash

  2. Bagaimana saya bisa * hanya * mendapatkan jumlah byte yang tersedia pada disk di bash?

  3. Hitung jumlah karakter, kata, dan baris di PowerShell

  1. Bagaimana cara menambahkan baris baru ke akhir file?

  2. Bagaimana menemukan pengelola file default?

  3. Bagaimana cara menghitung pesan dari mailq Postfix?