shell遍历比较文件夹下文件md5值

#!/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

__EOF__

本文作者weijie
本文链接https://www.cnblogs.com/WEIWEI1095/p/17735081.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!
posted @   WEIWEI1095  阅读(248)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
· 写一个简单的SQL生成工具
*/
作品集 //
点击右上角即可分享
微信分享提示