How to count the number of bytes in a file, grouping the same bytes?count lines in a fileHow do you write specific bytes to a file?How could I use Bash to find 2 bytes in a binary file, increase their values, and replace?How do you get a count of all file extensions on a hard drive using the gnu+linux terminal?Writing an unlimited number of defined values into a fileCount the Number of Words that Start with each Letter in a FileHow do I trim bytes from the beginning and end of a file?How to get a count of specific process using ps command and then sort nd count it user wiseHow to improve the specific columns count AWKHow to print the count of pattern at each line?
Where to connect the fuse and why?
Does friction always oppose motion?
Fast method to cut/shred glue stick into small pieces
What happens if a caster is surprised while casting a spell with a long casting time?
Why didn't Caesar move against Sextus Pompey immediately after Munda?
What are the children of two Muggle-borns called?
Subset of knight's move in chess.
Two palindromes are not enough
I agreed to cancel a long-planned vacation (with travel costs) due to project deadlines, but now the timeline has all changed again
Is this house-rule removing the increased effect of cantrips at higher character levels balanced?
Customs and immigration on a USA-UK-Sweden flight itinerary
Correct use of the the idiom 'Гнать/Катить бочку'
Why should I allow multiple IPs on a website for a single session?
Is my guitar action too high or is the bridge too high?
Checkmate in 1 on a Tangled Board
How soon after takeoff can you recline your airplane seat?
How did they film the Invisible Man being invisible in 1933?
"I am [the / an] owner of a bookstore"?
Avoiding repetition when using the "snprintf idiom" to write text
Tricolour nonogram
Does "boire un jus" tend to mean "coffee" or "juice of fruit"?
Active wildlife outside the window- Good or Bad for Cat psychology?
Equatorial oceanic river caused by tides
Sort a list of lists by increasing order of elements
How to count the number of bytes in a file, grouping the same bytes?
count lines in a fileHow do you write specific bytes to a file?How could I use Bash to find 2 bytes in a binary file, increase their values, and replace?How do you get a count of all file extensions on a hard drive using the gnu+linux terminal?Writing an unlimited number of defined values into a fileCount the Number of Words that Start with each Letter in a FileHow do I trim bytes from the beginning and end of a file?How to get a count of specific process using ps command and then sort nd count it user wiseHow to improve the specific columns count AWKHow to print the count of pattern at each line?
Example: I have the file "mybinaryfile", and the contents in hex are:
A0 01 00 FF 77 01 77 01 A0
I need to know how many A0 bytes there are in this file, how many 01, and so on. The result could be:
A0: 2
01: 3
00: 0
FF: 0
77: 2
Is there some way to make this count directly in shell or do I need to write a program in whatever language to do this specific task?
linux command-line files binary byte
add a comment |
Example: I have the file "mybinaryfile", and the contents in hex are:
A0 01 00 FF 77 01 77 01 A0
I need to know how many A0 bytes there are in this file, how many 01, and so on. The result could be:
A0: 2
01: 3
00: 0
FF: 0
77: 2
Is there some way to make this count directly in shell or do I need to write a program in whatever language to do this specific task?
linux command-line files binary byte
Does this file have multiple lines? Also why do you have0
for00
andFF
when there is one of each?
– Jesse_b
8 hours ago
add a comment |
Example: I have the file "mybinaryfile", and the contents in hex are:
A0 01 00 FF 77 01 77 01 A0
I need to know how many A0 bytes there are in this file, how many 01, and so on. The result could be:
A0: 2
01: 3
00: 0
FF: 0
77: 2
Is there some way to make this count directly in shell or do I need to write a program in whatever language to do this specific task?
linux command-line files binary byte
Example: I have the file "mybinaryfile", and the contents in hex are:
A0 01 00 FF 77 01 77 01 A0
I need to know how many A0 bytes there are in this file, how many 01, and so on. The result could be:
A0: 2
01: 3
00: 0
FF: 0
77: 2
Is there some way to make this count directly in shell or do I need to write a program in whatever language to do this specific task?
linux command-line files binary byte
linux command-line files binary byte
edited 7 hours ago
Stephen Kitt
193k26 gold badges460 silver badges530 bronze badges
193k26 gold badges460 silver badges530 bronze badges
asked 8 hours ago
LawrenceLawrence
255 bronze badges
255 bronze badges
Does this file have multiple lines? Also why do you have0
for00
andFF
when there is one of each?
– Jesse_b
8 hours ago
add a comment |
Does this file have multiple lines? Also why do you have0
for00
andFF
when there is one of each?
– Jesse_b
8 hours ago
Does this file have multiple lines? Also why do you have
0
for 00
and FF
when there is one of each?– Jesse_b
8 hours ago
Does this file have multiple lines? Also why do you have
0
for 00
and FF
when there is one of each?– Jesse_b
8 hours ago
add a comment |
2 Answers
2
active
oldest
votes
This uses od to show one hex value per line, then sorts and counts:
od -t x1 -w1 -v -An mybinaryfile | sort | uniq -c
(-w1
is an extension, it’s not mandated by POSIX.)
add a comment |
Using Perl to unpack the slurped file to a byte array and then use a hash to count unique bytes:
printf 'xA0x01x00xFFx77x01x77x01xA0' |
perl -0777 -nE '
@bytes = unpack("C*",$_)
} sort
$counts$_++ for @bytes;
for $k (sort $a <=> $b keys %counts)
printf "%02X: %dn", $k, $counts$k
'
00: 1
01: 3
77: 2
A0: 2
FF: 1
If a sufficiently recent version of List::MoreUtils
is available, you may be able to simplify the counting by using its frequency
function.
Using Perl to unpack the slurped file to a byte array and then use a hash to count unique bytes:
printf 'xA0x01x00xFFx77x01x77x01xA0'
perl -0777 -nE '
@bytes = unpack("C*",$_)
{
$counts$_++ for @bytes;
for $k (sort $a <=> $b keys %counts)
printf "%02X: %dn", $k, $counts$k
'
00: 1
01: 3
77: 2
A0: 2
FF: 1
If a sufficiently recent version of List::MoreUtils
is available, you may be able to simplify the counting by using its frequency
function.
edited 6 hours ago
Stéphane Chazelas
323k57 gold badges625 silver badges992 bronze badges
323k57 gold badges625 silver badges992 bronze badges
answered 7 hours ago
steeldriversteeldriver
40.3k4 gold badges55 silver badges93 bronze badges
40.3k4 gold badges55 silver badges93 bronze badges
add a comment |
add a comment |
Thanks for contributing an answer to Unix & Linux Stack Exchange!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2funix.stackexchange.com%2fquestions%2f527521%2fhow-to-count-the-number-of-bytes-in-a-file-grouping-the-same-bytes%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Does this file have multiple lines? Also why do you have
0
for00
andFF
when there is one of each?– Jesse_b
8 hours ago