Sponsored Content
Top Forums Shell Programming and Scripting CMP two files with slight difference and return code Post 302244714 by drl on Wednesday 8th of October 2008 12:42:21 PM
Old 10-08-2008
Hi.

The GNU cmp seems to work for me:
Code:
#!/bin/bash -

# @(#) s1       Demonstrate cmp, skipping initial bytes.

echo
echo "(Versions displayed with local utility \"version\")"
version >/dev/null 2>&1 && version "=o" $(_eat $0 $1) cmp
set -o nounset
echo

FILE1=data1
FILE2=data2

echo " Data file $FILE1:"
cat $FILE1

echo
echo " Data file $FILE2:"
cat $FILE2

echo
echo " Results for comparison of entire files:"
cmp $FILE1 $FILE2
echo " Exit code is $?"

echo
echo " Results for comparison of files past byte 5:"
cmp -i 5 $FILE1 $FILE2
echo " Exit code is $?"

echo
echo " Results for comparison options in non-standard order:"
cmp $FILE1 $FILE2 -i 5
echo " Exit code is $?"

exit 0

Producing:
Code:
% ./s1

(Versions displayed with local utility "version")
Linux 2.6.11-x1
GNU bash 2.05b.0
cmp (GNU diffutils) 2.8.1

 Data file data1:
junk1 in this line.
hello, world.

 Data file data2:
junk2 in this line.
hello, world.

 Results for comparison of entire files:
data1 data2 differ: char 5, line 1
 Exit code is 1

 Results for comparison of files past byte 5:
 Exit code is 0

 Results for comparison options in non-standard order:
 Exit code is 0

Are you taking into account that the exit code is reset for each command? ... cheers, drl
 

10 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

Having a slight problem!?

having a slight problem. any clues would help. Can't seem to get any output when I run a simple echo script. grex.cyberspace.org% chmod a+x test grex.cyberspace.org% ls -l test -rwxrwx--x 1 gordybh cohorts 20 Dec 13 20:22 test grex.cyberspace.org% cat test #!/bin/sh echo test... (2 Replies)
Discussion started by: wmosley2
2 Replies

2. Shell Programming and Scripting

cmp, diff need options

Hi, I am using diff filename1 filename2, as these files are of huge size,I want to know the count(n) no. of different records to be displayed on the terminal. I do not want the contents of file i mean different lines to be displayed. Cheers Kunal. (0 Replies)
Discussion started by: niceboykunal123
0 Replies

3. UNIX for Dummies Questions & Answers

to pick up the Return Code ( RC) from the mailx command and return it to SAS uisng 's

Hi All, Can anyone please let me know the syntax / how to pick up the Return Code ( RC) from the mailx command and return it to SAS uisng 'system()' function and '${?}'. I am in a process to send the mail automatically with an attachment to bulk users. I have used 'Mailx' and 'Unencode'... (0 Replies)
Discussion started by: manas6
0 Replies

4. UNIX for Dummies Questions & Answers

cmp 2 variables

Hi I have two variables contining a set of near identical lines, i'd like to list the lines that differ? Prefereably i'd like not to save the variables into a file first. i.e var1 tag:val1 tag:val2 tag:val3 var2 tag:val1 tag:val4 tag:val3 i'd like the result to print out... (2 Replies)
Discussion started by: nickrick
2 Replies

5. Shell Programming and Scripting

date cmp

Please don't count this as a similar post.....I got the ftp part working....I am stuck how to find the files between two dates. I have 5 files filename.20090505.txt filename.20090504.txt filename.20090503.txt filename.20090502.txt filename.20090501.txt My load date is 20090501 and run date... (5 Replies)
Discussion started by: RubinPat
5 Replies

6. Shell Programming and Scripting

Issue in comparing (cmp) two files

Hi All, I have to compare set of files so I created a case statement with the option to give more than one file to compare. The Problem now i am facing is, if I compare the files directly, from prompt or just using the script only for a particular file then It's saying No difference, but If I... (4 Replies)
Discussion started by: Sudhar
4 Replies

7. Shell Programming and Scripting

How to merge two files with a slight twist

Hi, a brief introduction on the soundex python module(english sound comparison): import soundex.py a = "neu yorkk" b = "new york city" print soundex.sound_similar(a, b) output: 1 Suppose I want to merge two files, called mergeleft.csv and mergeright.csv Mergeleft.csv: ... (0 Replies)
Discussion started by: grossgermany
0 Replies

8. Solaris

cmp file

Dear all, for i in <List of Filename> FILENAME=`echo $i` do cp -p $FILENAME /temp /bin/cmp $FILENAME /temp/$FILENAME done I am planning to do something like this on a daily basis, so i want to ask that, if the comparison on the files encounter error, ... (2 Replies)
Discussion started by: beginningDBA
2 Replies

9. Shell Programming and Scripting

How to compare files in two folders using cmp?

i recently copied 400GB of data from a NTFS drive to a ext4 drive. I want to verify that the data is 100% identical to the original. I wanted to use cmp but it only does two files. The directory that was copied contains many subdirectories and all sorts of files (not just text). So I guess... (5 Replies)
Discussion started by: fuzzylogic25
5 Replies

10. Shell Programming and Scripting

Comparing files and capture return code

Hi, I would like to compare 2 files, and have a return code write to a file. regardless of the files contents are the same the code should be writing to a file (if both files contents are same then return code 0). A simple example will be great :) Thanks (3 Replies)
Discussion started by: khchong
3 Replies
CMP(1)							    BSD General Commands Manual 						    CMP(1)

NAME
cmp -- compare two files SYNOPSIS
cmp [-l | -s | -x] [-hz] file1 file2 [skip1 [skip2]] DESCRIPTION
The cmp utility compares two files of any type and writes the results to the standard output. By default, cmp is silent if the files are the same; if they differ, the byte and line number at which the first difference occurred is reported. Bytes and lines are numbered beginning with one. The following options are available: -h Do not follow symbolic links. -l Print the byte number (decimal) and the differing byte values (octal) for each difference. -s Print nothing for differing files; return exit status only. -x Like -l but prints in hexadecimal and using zero as index for the first byte in the files. -z For regular files compare file sizes first, and fail the comparison if they are not equal. The optional arguments skip1 and skip2 are the byte offsets from the beginning of file1 and file2, respectively, where the comparison will begin. The offset is decimal by default, but may be expressed as a hexadecimal or octal value by preceding it with a leading ``0x'' or ``0''. EXIT STATUS
The cmp utility exits with one of the following values: 0 The files are identical. 1 The files are different; this includes the case where one file is identical to the first part of the other. In the latter case, if the -s option has not been specified, cmp writes to standard error that EOF was reached in the shorter file (before any differences were found). >1 An error occurred. SEE ALSO
diff(1), diff3(1) STANDARDS
The cmp utility is expected to be IEEE Std 1003.2 (``POSIX.2'') compatible. The -h, -x, and -z options are extensions to the standard. HISTORY
A cmp command appeared in Version 1 AT&T UNIX. BSD
November 18, 2013 BSD
All times are GMT -4. The time now is 04:53 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy