生成new, old的 shell script
#!/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 || exit
new_dir=`pwd`
popd > /dev/null || exit
pushd $__old_dir > /dev/null || exit
old_dir=`pwd`
popd > /dev/null || exit
cd $work_dir result_dir=DIFF_`date +"%Y%m%d_%H%M%S"`
result_filename=$work_dir/$result_dir/result.txt
result_filename_temp=$work_dir/$result_dir/result.txt.tmp
new_dir_len=${#new_dir}
old_dir_len=${#old_dir}
echo "begin time: `date`"
mkdir $result_dir
echo "new dir: $new_dir"
echo "old dir: $old_dir"
echo "create dir $result_dir, now scan directory......" if [[ ! -d ${new_dir} ]];then
echo "new: $new_dir not exist"
exit
fi
if [[ ! -d ${old_dir} ]];then
echo "old: $old_dir not exist"
exit
fi filt_file() {
sed "/$1/d" $result_filename > $result_filename_temp
cp -f $result_filename_temp $result_filename
rm -f $result_filename_temp
} diff -x .git -r -q $new_dir $old_dir > $result_filename
filt_file .repo
filt_file .git
filt_file .svn
echo "scan directory finish"
echo ""
mkdir -p $result_dir/_NEW
mkdir -p $result_dir/_OLD count=`wc $result_filename | awk '{print $1}'`
current=0 cat $result_filename | while read line
do
current=`expr $current + 1`
if echo $line | grep Only; then
path1=`echo $line| awk -F '[ :]' '{print $3}'`
filename1=`echo $line| awk -F '[ :]' '{print $5}'`
if echo $line | grep $new_dir > /dev/null; then
filename2=${path1:new_dir_len+1}
#echo "in new dir"
#echo "path1: $path1, filename1: $filename1"
#echo "filename2: $filename2"
mkdir -p $result_dir/_NEW/$filename2
cp -fr $path1/$filename1 $result_dir/_NEW/$filename2/$filename1
else
filename2=${path1:old_dir_len+1}
mkdir -p $result_dir/_OLD/$filename2
cp -fr $path1/$filename1 $result_dir/_OLD/$filename2/$filename1
#echo "in old dir: $filename2"
#echo "path1: $path1, filename1: $filename1"
fi
fi
if echo $line | grep Files; then
filename1_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_new
mkdir -p $result_dir/_OLD/$filename4_old
cp -f $filename1_new $result_dir/_NEW/$filename4_new
cp -f $filename1_old $result_dir/_OLD/$filename4_old
fi
done
echo ""
echo "all finish"
生成new, old的 shell script的更多相关文章
- 这些年我们一起搞过的持续集成~Jenkins+Perl and Shell script
这些年我们一起搞过的持续集成~Jenkins+Perl and Shell script ##转载注明出处:http://www.cnblogs.com/wade-xu/p/4378224.html ...
- shell script入门
从程序员的角度来看, Shell本身是一种用C语言编写的程序,从用户的角度来看,Shell是用户与Linux操作系统沟通的桥梁.用户既可以输入命令执行,又可以利用 Shell脚本编程,完成更加复杂的操 ...
- bash shell学习-shell script基础 (笔记)
A chain no stronger than its weakest link. "一着不慎,满盘皆输" 参考资料:鸟哥的Linux私房菜 基础学习篇(第三版) Linux ...
- shell及脚本4——shell script
一.格式 1.1 开头 必须以 "# !/bin/bash" 开头,告诉系统这是一个bash shell脚本.注意#与!中间有空格. 二.语法 2.1 数值运算 可以用decla ...
- shell script
一.shell script的编写与执行 1.shell script 的编写中还需要用到下面的注意事项: a.命令的执行是从上到下,从左到右地分析与执行 b.命令.参数间的多个空白都会被忽略掉 c. ...
- (copy) Shell Script to Check Linux System Health
source: http://linoxide.com/linux-shell-script/shell-script-check-linux-system-health/ This article ...
- shell script练习
执行脚本的几种方式: 1. sh a.sh 或者 bash a.sh 调用的是 /bin/bash 进程执行的,所以脚本不需要执行权限. 2. 直接使用绝对路径执行, /home/script/a ...
- CentOS Linux下一个tomcat起停,查看日志的shell script
CentOS 的tomcat安装目录:/usr/local/tomcat vi MyTomcatUitl.sh 创建文件chmod u+x MyTomcatUtil.sh 赋执行 ...
- Shell script for logging cpu and memory usage of a Linux process
Shell script for logging cpu and memory usage of a Linux process http://www.unix.com/shell-programmi ...
随机推荐
- Mac下安装Wireshark,双击闪退
Mac OS X上使用Wireshark抓包(http://blog.csdn.net/phunxm/article/details/38590561) Mac下安装Wireshark /Appli ...
- golang csv问题
go语言自带的有csv文件读取模块,看起来好像不错,今天玩玩,也算是系统学习go语言的一部分--^_^ 一.写csv文件 函数: func NewWriter(w io.Writer) *Writer ...
- java.lang.OutOfMemoryError: PermGen space异常处理(内存溢出)
楼主刚接触到这个问题,问度娘,直接查到的都是让 在tomcat>bin>catalina.sh文件的“echo "Using CATALINA_BASE: $CATALINA_B ...
- 控制反转(IOC: Inverse Of Control) & 依赖注入(DI: Independence Inject)
举例:在每天的日常生活中,我们离不开水,电,气.在城市化之前,我们每家每户需要自己去搞定这些东西:自己挖水井取水,自己点煤油灯照明,自己上山砍柴做饭.而城市化之后,人们从这些琐事中解放了出来,城市中出 ...
- 使用mvn插件执行工程单元测试OOM的解决办法
在执行mvn test时,maven会启动一个fork进程来运行所有的单元测试类,所以我需要设置的是这个fork进程的jvm参数. 不过最终还是让我找到了http://maven.apache.org ...
- 课时8—弹窗modal
首先弹窗的实现效果如下: 主要实现的代码如下: CSS: .header,.footer,.wrap-page{ position:absolute; left:; right:; backgroun ...
- 使用spawn-fcgi管理php-cgi
spawn-fcgi -a 127.0.0.1 -p 9000 -C 5 -u nginx -g nginx -f php-cgi
- oracle中DDL DML指什么?
DDL create table 创建表 alter table 修改表 drop table 删除表 truncate table 删除表中所有行 create index 创建索引 drop in ...
- C语言样式的文件操作函数
使用C语言样式的文件操作函数,需要包含stdio.h头文件. 1.打开文件的函数: //oflag的取值为“w”或“r”,分别表示以写或读的方式打开 FILE* fd = fopen(filename ...
- C++二进制文件中读写bitset
这个比较简单,直接上代码: bitset< > *b = >(); bitset< > *c = >(); ofstream out("I:\\test. ...