博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
妈了个蛋,写了个炒鸡垃圾的脚本,也是醉了
阅读量:7068 次
发布时间:2019-06-28

本文共 3153 字,大约阅读时间需要 10 分钟。

功能:实现工程名/src/main/resources/online和  工程名/src/main/resources/performance下的配置文件的比较(后者比前者缺失哪些配置文件,后者比前者缺失哪些配置项)

代码:

#!/bin/bash# by wuboxiaorm -rf checkConfig.diff checkConfig.error checkConfig.result linenum.txt checkConfig.resfiles=`find $1/src/main/resources/online -name "*.properties"`#feflag:是否存在配置文件缺失的标志feflag=0#fdifftflag:文件存在差异时的首行提示文字“缺失的配置项检查结果:”是否存在的标志fdifftflag=0for i in $files;do    checkFile=${i/online/"$2"}    checkFileName=${checkFile##*/}    if [ ! -f $checkFile ];then       feflag=1       echo -e "    "$checkFileName 1>> checkConfig.error       continue    fi    diff $i $checkFile 1>> checkConfig.result    if [ $? -eq 0 ];then       #两个文件完全一致       continue    elif [ $? -eq 1 ];then        #结果为1代表两个配置文件有差异       if [ $fdifftflag -eq 0 ];then          echo "缺失的配置项检查结果:" 1>> checkConfig.diff          fdifftflag=1       fi       fdiflag=0       cat $i | grep -v "^#" | grep -v "^$" |  while read line       do            key=$(echo $line | sed -e 's/\(.*\)=\(.*\)/\1/g')           key_find=$( grep  "$key=\(.*\)" $checkFile | sed -e 's/\(.*\)=\(.*\)/\1/g')           if [ -z "$key_find" ];then              if [ $fdiflag -eq 0 ];then 		 echo -e $checkFileName 1>>checkConfig.diff                 fdiflag=1              fi                  echo -e "\t"$key 1>>checkConfig.diff           fi       done    fidonelostfilenum=$(cat checkConfig.error | wc -l)echo -e "\e[1;31m"$2"缺少"$lostfilenum"个配置文件\e[0m"echo -e "  \c"filelines=1if [ $lostfilenum -ne 0 ];then#   echo -e "配置文件:\c"   cat checkConfig.error | while read line   do       if [ $filelines -eq "$lostfilenum" ];then         echo -e $line         break      fi      echo -e $line"、\c"      ((filelines++))   donefiecho ""chkfilelines=$(cat checkConfig.diff | wc -l)#echo "缺失配置项为"$chkfilelines"个"alllostitem=$(grep -v '.properties' checkConfig.diff | wc -l)sed -i '1s/^.*/'"$2"'缺少'"$((alllostitem-1))"'个配置项/g' checkConfig.diffecho -e "\e[1;31m"$2"缺少"$((alllostitem-1))"个配置项\e[0m" 1>> checkConfig.resif [ $chkfilelines -eq 1 ];then   echo "    无配置项缺失" 1>> checkConfig.diff   cat checkConfig.diffelse    linecnt=1   cat checkConfig.diff | awk 'NR>1' | while read line   do     result=$(echo $line | grep "properties" )     ((linecnt++))     if [ ! "$result"x == ""x ];then          echo $linecnt 1>>linenum.txt     fi   done   echo $((chkfilelines+1)) 1>>linenum.txt   start=$(cat linenum.txt | awk 'NR==1')   cat linenum.txt | awk 'NR>1' | while read  end   do      sed -i "$start"'s/$/&缺少'"$((end-start-1))"'个配置项/g' checkConfig.diff      awk 'NR=='"$start" checkConfig.diff 1>>checkConfig.res      linecount=1      echo -e "  \c" 1>>checkConfig.res      awk 'NR>'"$start"' && NR<'"$end" checkConfig.diff | while read eachline      do        if [ $linecount -lt $((end-start-1)) ];then           echo -e $eachline"、\c" 1>>checkConfig.res        else           echo -e $eachline 1>>checkConfig.res        fi        ((linecount++))      done      start=$end      echo "" 1>>checkConfig.res   done   fi#cat checkConfig.diffcat checkConfig.resrm -rf check.result checkConfig.diff checkConfig.error linenum.txt checkConfig.res

效果:

 

转载于:https://www.cnblogs.com/boucher/p/5766695.html

你可能感兴趣的文章
hello,blog!
查看>>
JS实现网页全屏与退出全屏
查看>>
安全与加密-SSL交互与握手过程 创建CA和证书管理
查看>>
CentOS 6.5 LNMP环境编译搭建
查看>>
我的友情链接
查看>>
搭建最简单ceph环境(入门)
查看>>
Request header field Access-Control-Allow-Origin is not allowed by Access-Control-Allow-Headers
查看>>
nagios常见的故障说明
查看>>
phpcms后台栏目列表自定义字段搜索功能
查看>>
自定义弹出框
查看>>
如何扩展ESXi虚拟机磁盘容量
查看>>
sqlserver 登录方式修改,由默认的windows账户改为用sa等sql server账户登录
查看>>
Apache+tomcat 快速部署Java环境
查看>>
获取Android控件尺寸
查看>>
强大的命令行工具wmic
查看>>
CentOS6服务管理之DNS-源码安装Bind-9.10
查看>>
出现controller取不到值的情况
查看>>
解决exe4打包出现的问题
查看>>
安装.Net Framework时安装进度总是不动怎么办
查看>>
如何卸载Exchange Server 2010
查看>>