1. 程式人生 > >shell和python對比對目錄下不同文件

shell和python對比對目錄下不同文件

技術文檔

cat git_tar.py
import subprocess,tarfile,os
def finds():
tar = tarfile.open("test.tar.gz","w:gz")
result=subprocess.call(‘git diff 99gw 99gw_old>result.txt‘,shell=True)
if os.path.getsize(‘result.txt‘)!=0:
file=open(‘result.txt‘,‘r‘)
for line in file:
line=line.strip()
if line.startswith("diff --git a/"):
files=line.strip()
files=files.split()[2]
files=files[2:]
tar.add(files)
file.close()
tar.close()
else:
print ‘git not diff‘

if name==‘main‘:

finds()

vim UPGRADE.sh
#git clone code.
dirName=dirname $0
cd $dirName
[ -d 99gw_old ] || echo "Error: 99gw_old dir not exist."
git clone [email protected]:BangHan/99gw.git

#diff dir 99gw and 99gw_old
diff -urN 99gw 99gw_old |awk ‘/^diff -urN/{print $3}‘ > diff.txt
for var in $(cat diff.txt);do
dir=${var%/*}
[ -d temp ] || mkdir -p temp
[ -d temp/$dir ] || mkdir -p temp/$dir
[ -f $var ] && \cp -p $var temp/$dir
done

#rsyn diffed files to remote hosts.
hosts="
172.19.xx.xx

172.19.xx.xx
"
for host in $hosts;do
rsync -avz -e ssh temp/99gw/* $host:/tmp/99gw_old/;
done

#rename local git dir.
t=$(date +%Y%m%d_%H%M%S)
mv 99gwold 99gw$t && mv 99gw 99gw_old
[ $? -ne 0 ] && echo "directory rename error"

shell和python對比對目錄下不同文件