The UNIX and Linux Forums  

Go Back   The UNIX and Linux Forums > Top Forums > UNIX for Advanced & Expert Users
.
google unix.com




View Single Post in the UNIX and Linux Forums - Click on the Thread or Permalink to View Entire Thread -->
  #1 (permalink)  
Old 09-13-2006
gkrishnag gkrishnag is offline
Registered User
  
 

Join Date: Jul 2006
Posts: 49
Script error.. for comparing 2 files!

Hi

I am using the below script to compare two files.. i am getting error as mentioned below:
#!/bin/sh
# Script to find the difference between 2 files
# Remember the old file file1 should always be the first argument. Else, the logic would reverse.
# diff.sh <old file> <new file>
if [[ $# -ne 2 ]] ; then
echo "Need just 2 files to compare"
exit 1
fi;

# Take the diff by ignoring the blank and whitespaces.
diff -b -w ${1} ${2} > ${1}.diff
if [[ $? -eq 0 ]] ; then
echo "No files were added/removed"
else
echo "Files were added/removed"
fi;

# process the diff file.
# A line might look like
# < text-which-went-out
# > text-which-came-in

while read line
do
if [[ ${line:0:2} == "< " ]] ; then
echo ${line:2} is removed.
fi;

if [[ ${line:0:2} == "> " ]] ; then
echo ${line:2} is added.
fi;

done < ${1}.diff

when i run:diff.sh <oldfilename> <newfilename>
/home/cvs ->diff.sh 2047files.txt 2048files.txt
Files were added/removed
diff.sh[23]: ${line:0:2}: The specified substitution is not valid for this command.

can some one correct this...

Note; But my puruse is done, i am able to create a another file where i could see the diff, but i get the error... how do i will over come this???

Any sugesstions...