When comparing binary files, show human readable result?


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting When comparing binary files, show human readable result?
# 1  
Old 01-26-2020
When comparing binary files, show human readable result?

Hello.


I am comparing two binary file.
The first file is the source file. The second file is a modified version of the first one.
Modification concern uuid value.


Example
first file have multiple occurrences of 69a3604b-ac2b-43b7-af84-0a4a67fc6962 second file have the same occurence number with "e1accb44-ce59-40a4-9a85-0905c05cdc86"
I want to verify that the only difference between the file are 69a3604b-ac2b-43b7-af84-0a4a67fc6962 replaced by e1accb44-ce59-40a4-9a85-0905c05cdc86


Using a tip found on internet, What i am able to do is to print an address offset, the value for the first file and the value for the second file.
Something like :
Code:
0000000E 36 65
0000000F 39 31
00000011 33 63
00000012 36 63
00000013 30 62
00000015 62 34
00000017 61 63
00000018 63 65
00000019 32 35
0000001A 62 39
0000001D 33 30
0000001E 62 61
0000001F 37 34
00000021 61 39
00000022 66 61
00000024 34 35
00000027 61 39
00000028 34 30
00000029 61 35
0000002A 36 63
0000002B 37 30
0000002C 66 35
0000002E 36 64
0000002F 39 63
00000030 36 38
00000031 32 36

followed by the next occurence

Code:
00000053 36 65
.......
.....

I would like to have something like
Code:
left   : 69a3604b-ac2b-43b7-af84-0a4a67fc6962
right : e1accb44-ce59-40a4-9a85-0905c05cdc86

or
Code:
<<< 69a3604b-ac2b-43b7-af84-0a4a67fc6962
>>> e1accb44-ce59-40a4-9a85-0905c05cdc86

Any help is welcome
# 2  
Old 01-26-2020
How about
Code:
cmp -bl file[12] | awk '{LSTR = LSTR $3; RSTR = RSTR $5} END {print "left: ", LSTR; print "right:", RSTR}'
left:  69360bac2b3b7af4a4a67f6962
right: e1ccb4ce590a49a5905c05dc86

Unfortunately, this does not display the hyphens as they are identical in both files.


EDIT: alternatively, try

Code:
diff <(strings file1) <(strings file2)
12c12
< *69a3604b-ac2b-43b7-af84-0a4a67fc6962
---
> *e1accb44-ce59-40a4-9a85-0905c05cdc86

this might suffer if UTF-8 chars greater than 127 are close / around the strings of interest...


EDIT: or


Code:
cmp -bl file[12] | awk 'NR == 1 {OUT = sprintf ("xxd -pc1 -s%d ", X = $1 - 1)} END {OUT = OUT sprintf ("-l%d file", $1 - X); print OUT "1"; print "printf \"0A\n\""; print OUT "2"; print "printf \"0A\n\""}' | sh | xxd -p -r
69a3604b-ac2b-43b7-af84-0a4a67fc6962
e1accb44-ce59-40a4-9a85-0905c05cdc86


Last edited by RudiC; 01-26-2020 at 04:03 PM..
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Programming

How to parse .nessus file to get result in human readable format?

Scripting Language: bash shell script, python I want to parse .nessus file in human readable format. If any one have any ideas please help me. (2 Replies)
Discussion started by: sk151993
2 Replies

2. Shell Programming and Scripting

Convert epoch time stamp into human readable format

Can someone help me to write a shell script to convert epoch timestamp into human readable format 1394553600,"test","79799776.0","19073982.728571","77547576.0","18835699.285714" 1394553600,"test1","80156064.0","19191275.014286","62475360.000000","14200554.720000"... (10 Replies)
Discussion started by: Moon1234
10 Replies

3. Shell Programming and Scripting

Making big find command more human readable

This does not work. One line works but my pattern are about 100 characters long and it is messy to read. When I try to use several lines it does not two' find "$inputDirectory" \( -name 'very long pattern1' -o -name 'very long pattern2' -o -name... (1 Reply)
Discussion started by: Michael Stora
1 Replies

4. UNIX for Dummies Questions & Answers

Display Directories with their sizes in human readable format

Hi, I want to list all the directories present in a particular location and want to display their sizes as well. I know "ls -lh" but it doesn't show the size of the complete directory. So i want something like dir1 266 MB dir2 2 KB dir3 22 MB ... ... file1 10 Kb ..... Thanks Sarbjit (4 Replies)
Discussion started by: sarbjit
4 Replies

5. UNIX for Dummies Questions & Answers

Make netstat human readable?

Is there any way to make netstat output the information in a more human readable format? even if it's not exact? I don't even care if it has to round up/down to the nearest Meg to make it work. I wind up having to stare at netstat running for while and I wish I could get it to output things in a... (10 Replies)
Discussion started by: MrEddy
10 Replies

6. Shell Programming and Scripting

Convert epoch to human readable date & time format

Hello I have log file from solaris system which has date field converted by Java application using System.currentTimeMillis() function, example is 1280943608380 which equivalent to GMT: Wed, 04 Aug 2010 17:40:08 GMT. Now I need a function in shell script which will convert 1280943608380... (3 Replies)
Discussion started by: Yaminib
3 Replies

7. Shell Programming and Scripting

Human readable sizes in Solaris bdf

hay every body i need script like bdf -h in hp-ux there is no option like solaris df -h it is only bdf -k so i need the output with GBytes (8 Replies)
Discussion started by: maxim42
8 Replies

8. UNIX for Dummies Questions & Answers

How to make user's qutoa in human readable format?

$ quota Disk quotas for user cqlouis (uid 1254): Filesystem blocks quota limit grace files quota limit grace /dev/sdb1 64 300000 320000 8 0 0 $ I want to make the output of command quota in human readable format? How to? As we... (2 Replies)
Discussion started by: cqlouis
2 Replies

9. Shell Programming and Scripting

script to convert epoch into human-readable

This is what I have to start out with more file 1208217600 1208131200 1193806800 I want to convert the epoch column into a human-readable format. My file has hundreds of these epoch times that I want to loop through and convert. (The epoch time is really the last column of the line) ... (3 Replies)
Discussion started by: snoman1
3 Replies

10. Shell Programming and Scripting

formatting output in human readable numbers

Hi, The following command provides the usage in 1024-byte blocks du -ks * | sort -n | echo "$1" ... 1588820 user10 2463140 user11 2464096 user12 5808484 user13 6387400 user14 ..... I am trying to produce an output of first coulmn by multiplying by 1024 so that the output should... (11 Replies)
Discussion started by: ghazi
11 Replies
Login or Register to Ask a Question