整理文件比较的Shell脚本
问题
如何对不同环境生成的文件进行比较?
方案
通过对文件进行消息摘要计算,例如MD5,SHA-1,通过比较摘要来判断文件的一致性
脚本
md5sum例子,生成文件对应的md5码
比较文件md5码
$ls *.jar weblogic.jar wlclient.jar $ md5sum *.jar >> mymd5result.txt $cat mymd5result.txt c97f8d9aae6ed2c93b5bede83320944b weblogic.jar 9cbc591f62173404c991d75b45f254b1 wlclient.jar
#!/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