clear echo "Enter Directory 1:" read dir1 echo "Enter Directory 2:" read dir2 if [ ! -d $dir1 ] || [ ! -d $dir2 ]; then echo "dir1 not exist" exit 1 fi `echo ls $dir1`>dir1.txt `echo ls $dir2`>dir2.txt echo "===============" totalfile1=`wc -w dir1.txt|cut -c 8-9` # HOME totalfile2=`wc -w dir2.txt|cut -c 8-9` # HOME # totalfile1=`wc -w dir1.txt|cut -c 1-2` # COLLEGE # totalfile2=`wc -w dir2.txt|cut -c 1-2` # COLLEGE echo "totalfile:$totalfile1" echo "totalfile:$totalfile2" mkdir NEW_DIR # copying all files from dir1 and comparing each file with files in dir2 i=$totalfile1 flag=0 while [ $i -ge 1 ] do file1=`tail -n $i dir1.txt | head -n 1` i=`expr $i - 1` flag=0 j=$totalfile2 while [ $j -ge 1 ] do file2=`tail -n $j dir2.txt | head -n 1` j=`expr $j - 1` if [ "$file1" == "$file2" ];then flag=1 str1=`ls -l $dir1/$file1 | cut -d " " -c 50-55` # HOME str2=`ls -l $dir2/$file2 | cut -d " " -c 50-55` # HOME # str1=`ls -l 3.sh|cut -d " " -f 7` # COLLEGE # str2=`ls -l 3a.sh|cut -d " " -f 7` # COLLEGE hh1=`echo $str1 | cut -c 1-2` ss1=`echo $str1 | cut -c 4-5` hh2=`echo $str2 | cut -c 1-2` ss2=`echo $str2 | cut -c 4-5` # echo "hh1:$hh1 and ss1:$ss1"; # echo "hh2:$hh2 and ss2:$ss2"; if [ $hh1 -eq $hh2 ];then if [ $ss1 -le $ss2 ];then cp $dir2/$file2 NEW_DIR else cp $dir1/$file1 NEW_DIR fi else if [ $hh1 -le $hh2 ];then cp $dir2/$file2 NEW_DIR else cp $dir1/$file1 NEW_DIR fi fi fi done if [ $flag -eq 0 ];then cp $dir1/$file1 NEW_DIR fi done # copying remaining files that are in dir2 but not in dir1 i=$totalfile2 flag=0 while [ $i -ge 1 ] do file1=`tail -n $i dir2.txt | head -n 1` i=`expr $i - 1` flag=0 j=$totalfile1 while [ $j -ge 1 ] do file2=`tail -n $j dir1.txt | head -n 1` j=`expr $j - 1` if [ "$file1" == "$file2" ];then flag=1 fi done if [ $flag -eq 0 ];then cp $dir2/$file1 NEW_DIR fi done
1 comments:
output are differ then programming expectation :) its self modified
Post a Comment