整理文件比較的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


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章