Sponsored Content
Top Forums Shell Programming and Scripting When comparing binary files, show human readable result? Post 303043371 by RudiC on Sunday 26th of January 2020 02:34:01 PM
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..
 

10 More Discussions You Might Find Interesting

1. 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

2. 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

3. 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

4. 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

5. 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

6. 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

7. 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

8. 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

9. 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

10. 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
diff(1) 						      General Commands Manual							   diff(1)

Name
       diff - differential file comparator

Syntax
       diff [options] dir1 dir2
       diff [options] file1 file2

Description
       The command compares the contents of files or groups of files, and lists any differences it finds. When run on regular files, and when com-
       paring text files that differ during directory comparison, tells what lines must be changed in the files  to  bring  them  into	agreement.
       Except  in rare circumstances, finds a smallest sufficient set of file differences.  If neither file1 nor file2 is a directory, then either
       can be specified as `-', in which case the standard input is used.  If file1 is a directory, then a file in that directory  whose  filename
       is the same as the filename of file2 is used and likewise if file2 is a directory.

       If  both  arguments  are directories, sorts the contents of the directories by name, and then runs the regular file algorithm on text files
       that are different.  Binary files that differ, common subdirectories, and files that appear in only one directory are listed.

Options
       The following options are used when comparing directories:

       -l	 Displays the output in long format.  Each text file is piped through to paginate it; other differences are summarized	after  all
		 text file differences are reported.

       -n	 Produces a script similar to that of -e, but in reverse order and with a count of changed lines on each insert or delete command.

       -r	 Recursively checks files in common subdirectories.

       -s	 Displays names of files that are the same.

       -Sname	 Starts a directory in the middle beginning with the specified file.

       Except for the -b, i, t, and w options, which may be given with any of the others, the following formatting options are mutually exclusive:

       -b	 Ignores trailing blanks and other strings of blanks and treats such portions as equal.

       -c	 Displays three context lines with each output line.  For backwards compatibility, -cn causes n number of context lines.

       -C n	 Displays specified number of context lines with each output line.  With -c or -C the output format is modified slightly: the out-
		 put begins with identification of the files involved and their creation dates and then each change is separated by a line with  a
		 dozen asterisks (*).  The lines removed from file1 are marked with minus sign (-); those added to file2 are marked plus sign (+).
		 Lines that are changed from one file to the other are marked in both files with an exclamation point (!).

		 Changes within n context lines of each other are grouped together in the output.  This results in output  that  is  usually  much
		 easier to interpret.

       -Dstring  Causes  to  create a merged version of file1 and file2 on the standard output.  With C preprocessor controls included, a compila-
		 tion of the result without defining string is equivalent to compiling file1, while defining string will yield file2.

       -e	 Writes output to an script.  In connection with -e, the following shell program can help maintain multiple versions  of  a  file.
		 Only  an  ancestral  file ($1) and a chain of version-to-version scripts ($2,$3,...) made by need be available.  A latest version
		 message appears on the standard output.
		  (shift; cat $*; echo '1,$p') | ed - $1
		 If you specify -e when comparing directories the result is a script for converting text files that are common to the two directo-
		 ries from their state in dir1 to their state in dir2.

       -f	 Writes the output in reverse order to a script.

       -h	 Makes	a hasty comparison.  It works only when changed portions are short and well separated, but does work on files of unlimited
		 length.

       -i	 Ignores the case of letters.  For example 'A' will compare equal to `a'.

       -t	 Expand tabs in output lines.  Normal or -c output adds character(s) to the front of each line which may affect the indentation of
		 the  original	source lines and make the output listing difficult to interpret.  This option will preserves the original indenta-
		 tion.

       -w	 Causes whitespace (blanks and tabs) to be totally ignored.  For example, `if ( a == b )' will compare equal to `if(a==b)'.

       There are several options for output format; the default output format contains lines of these forms:

	    n1 a n3,n4
	    n1,n2 d n3
	    n1,n2 c n3,n4

       These lines resemble commands to convert file1 into file2.  The numbers after the letters pertain to file2.  In fact, by exchanging `a' for
       `d' and reading backward you can tell how to convert file2 into file1.  As in identical pairs where n1 = n2 or n3 = n4 are abbreviated as a
       single number.

       Following each of these lines come all the lines that are affected in the first file flagged by a left angle bracket  (<).   Then  all  the
       lines that are affected in the second file are listed, flagged by a right angle bracket (>).

Restrictions
       Editing scripts produced under the -e or -f option have trouble creating lines consisting of a single period (.).

       When comparing directories with the -b, i, t, or w options specified, first compares the files as does, and then runs the algorithm if they
       are not equal.  If the only differences are in the blank strings, may report these as differences.

Diagnostics
       Exit status is 0 for no differences, 1 for some differences,and 2 if the specified file cannot be found.

Files
       for		   -h

       See Also
	      cc(1), cmp(1), comm(1), diff3(1), ed(1)

																	   diff(1)
All times are GMT -4. The time now is 01:59 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy