整理文件比较的Shell脚本

问题

如何对不同环境生成的文件进行比较?

方案

通过对文件进行消息摘要计算,例如MD5,SHA-1,通过比较摘要来判断文件的一致性

脚本

md5sum例子,生成文件对应的md5码
$ls *.jar
weblogic.jar wlclient.jar
$ md5sum *.jar >> mymd5result.txt
$cat mymd5result.txt 
c97f8d9aae6ed2c93b5bede83320944b weblogic.jar
9cbc591f62173404c991d75b45f254b1 wlclient.jar

比较 文件md5码
#!/bin/sh




usage()
{
        echo "usage:'test.sh file1 file2' compare file md5 code"
}


if [ $# -ne 2 ];
then
   usage
   exit 1
fi


cat $1 | while read myline
do
   e0=`echo $myline |awk '{print $1}'`
   e1=`echo $myline |awk '{print $2}'`


   count=`grep $e1 $2|wc -l`


   if [ $count -ne 1  ] ;
   then
        echo "$e1 more than one time in $2"
        exit 1
   fi
   
   te1=`grep $e1 $2|awk '{print $2}' `
   te0=`grep $e1 $2|awk '{print $1}' `
   if [ "$e1"x = "$te1"x ];
   then   
        if [ "$te0"x = "$e0"x ] ;  
        then
           echo "file:"$e1" equals!"
        else    
           echo "file:"$e1" not equals!"
        fi
        
   else
        echo "file:"$e1" is not exist in $2"
   fi
done


你可能感兴趣的:(c,shell,File,脚本,equals)