生成new, old的 shell script

来源:互联网 发布:python数学库代码 编辑:程序博客网 时间:2024/04/28 13:16


#!/bin/bash#usage: ./create_dts_diff_v2.x.sh path1 path2__new_dir=$1__old_dir=$2#===========================================================#WARNING:#do *NOT* modify below#===========================================================work_dir=`pwd`pushd $__new_dir > /dev/null || exitnew_dir=`pwd`popd             > /dev/null || exitpushd $__old_dir > /dev/null || exitold_dir=`pwd`popd             > /dev/null || exitcd $work_dirresult_dir=DIFF_`date +"%Y%m%d_%H%M%S"`result_filename=$work_dir/$result_dir/result.txtresult_filename_temp=$work_dir/$result_dir/result.txt.tmpnew_dir_len=${#new_dir}old_dir_len=${#old_dir}echo "begin time: `date`"mkdir $result_direcho "new dir: $new_dir"echo "old dir: $old_dir"echo "create dir $result_dir, now scan directory......"if [[ ! -d ${new_dir} ]];thenecho "new: $new_dir not exist"exitfiif [[ ! -d ${old_dir} ]];thenecho "old: $old_dir not exist"exitfifilt_file() {sed "/$1/d" $result_filename > $result_filename_tempcp -f $result_filename_temp $result_filenamerm -f $result_filename_temp}diff -x .git -r -q $new_dir $old_dir >     $result_filenamefilt_file .repofilt_file .gitfilt_file .svnecho "scan directory finish"echo ""mkdir -p $result_dir/_NEWmkdir -p $result_dir/_OLDcount=`wc $result_filename | awk '{print $1}'`current=0cat $result_filename | while read linedo      current=`expr $current + 1`if echo $line | grep Only; thenpath1=`echo $line| awk -F '[ :]' '{print $3}'`filename1=`echo $line| awk -F '[ :]' '{print $5}'`if echo $line | grep $new_dir > /dev/null; thenfilename2=${path1:new_dir_len+1}#echo "in new dir"#echo "path1: $path1, filename1: $filename1"#echo "filename2: $filename2"mkdir -p $result_dir/_NEW/$filename2cp -fr $path1/$filename1 $result_dir/_NEW/$filename2/$filename1elsefilename2=${path1:old_dir_len+1}mkdir -p $result_dir/_OLD/$filename2cp -fr $path1/$filename1 $result_dir/_OLD/$filename2/$filename1#echo "in old dir: $filename2"#echo "path1: $path1, filename1: $filename1"fifiif echo $line | grep Files; thenfilename1_new=`echo $line | awk '{print $2}'`filename1_old=`echo $line | awk '{print $4}'`filename2_new=`dirname  $filename1_new`filename2_old=`dirname  $filename1_old`filename3_new=`basename $filename1_new`filename3_old=`basename $filename1_old`filename4_new=${filename2_new:new_dir_len+1}filename4_old=${filename2_old:old_dir_len+1}mkdir -p $result_dir/_NEW/$filename4_newmkdir -p $result_dir/_OLD/$filename4_oldcp -f $filename1_new $result_dir/_NEW/$filename4_newcp -f $filename1_old $result_dir/_OLD/$filename4_oldfidoneecho ""echo "all finish"


原创粉丝点击