您的位置:首页 > 运维架构 > Shell

整理文件比较的Shell脚本

2012-10-17 12:55 267 查看

问题

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

方案

通过对文件进行消息摘要计算,例如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


  
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: