#!/bin/bash
CURRENT_DIR=$(cd $(dirname $0); pwd)
SOURCE_DIR="$CURRENT_DIR/python_data"
TARGET_DIR="$CURRENT_DIR/out_bin"
cd $SOURCE_DIR
> python.md5
for file in $(ls $SOURCE_DIR | grep "data")
do
source_file=${SOURCE_DIR}/${file}
echo -e "${file}\t" | awk '{printf $0}' >> python.md5
md5sum ${source_file} | awk '{print $1}' >> python.md5
# echo -e '\n'>> python.md5
done
sort -k 1 python.md5
cd $TARGET_DIR
> out.md5
for file in $(ls $TARGET_DIR | grep "_out.bin")
do
target_file=${TARGET_DIR}/${file}
echo -e "${file}\t" | awk '{printf $0}' >> out.md5
md5sum ${target_file} | awk '{print $1}' >> out.md5
# echo -e '\n' >> out.md5
done
sort -k 1 out.md5
Fname_python_data=$SOURCE_DIR/python.md5
Fname_out_bin=$TARGET_DIR/out.md5
Lines1=`cat $Fname_python_data | wc -l`
Lines2=`cat $Fname_out_bin | wc -l`
echo -e "-----------start-------------\n"
for((N1=$Lines1-1,Num1=$Lines1;N1>=1;N1--,Num1--))
do
Var1_1=`sed -n "${Num1}p" $Fname_python_data`
Var1_2=`echo $Var1_1 | awk '{print $1}'`
Var1_3=`echo $Var1_1 | awk '{print $2}'`
# echo -e "Now solve the row:$N1, the content:$Var1_1, the first:$Var1_2", the second:$Var1_3
echo -e "Now Compare $Fname_python_data 's row:$N1, Name : $Var1_2, Md5 : $Var1_3"
echo -e "\n"
# bin_id1=`echo $Var1_1 |awk '{print substr($1,1,3)}'`
bin_id1=$(cut -c-5 <<< "$Var1_2")
bin_md5=$(cut -c-5 <<< "$Var1_3")
for((N2=$Lines2-1,Num2=$Lines2;N2>=1;N2--,Num2--))
do
Var2_1=`sed -n "${Num2}p" $Fname_out_bin`
Var2_2=`echo $Var2_1 | awk '{print $1}'`
Var2_3=`echo $Var2_1 | awk '{print $2}'`
# echo -e "Now solve the row:$N2, the content:$Var2_1, the first:$Var2_2", the second:$Var2_3
# echo -e "Now solve $Fname_out_bin 's row:$N2, Name : $Var2_2, Md5 :$Var2_3"
# data_id2=`echo $Var2_1 |awk '{print substr($1,1,3)}'`
data_id2=$(cut -c-5 <<< "$Var2_2")
data_md5=$(cut -c-5 <<< "$Var2_3")
if [ "$bin_md5" == "$data_md5" ] && [ "$bin_id1" == "$data_id2" ];then
# if [ "$Var1_3" == "$Var2_3" ];then
echo -e "\033[32m-------------------------------------------\033[0m"
echo -e "\033[32m---------Equal,$Var1_2=$Var2_2-------------\033[0m"
echo -e "\033[32m-------------------------------------------\033[0m"
N2=0
fi
done
echo -e '\n'
done
shell遍历比较文件夹下文件md5值
发布时间 2023-09-28 10:19:08作者: WEIWEI1095