码迷,mamicode.com
首页 > 其他好文 > 详细

perl 脚本实现简单搜索修改文件并生成diff文件

时间:2014-11-18 13:11:26      阅读:154      评论:0      收藏:0      [点我收藏+]

标签:style   blog   http   io   color   ar   os   sp   for   

在已有代码上修改代码一般要生成diff文件来生成patch,从而porting到相关baseline上。

 

修改文件较少时可以一个个来生成,但是当修改文件较多时就会很耗费工时,所以就想

写一个脚本来减少工时消耗。你只需要关注coding,而不必担心diff文件的生成。

 

实现的思想只要是:首先搜索以".orig"结尾的文件(这可以通过vim中设置来自动生成),

然后截断.orig来获得修改后的文件。从而生成已"*.diff"结尾的diff文件也可以成为patch。

当把这三个相关文件复制到一个专门存放code文件夹中时,要考虑在coding文件夹中创建

相关目录,目录只能是一级一级创建。所以要用到split来分割。

 

具体实现如下:

 

[python] view plaincopy
 
bubuko.com,布布扣
 1 #!/usr/bin/perl  
 2   
 3   
 4 # create a direction to save coding files  
 5 $code = "./coding";  
 6 if(-d $code)  
 7 {  
 8      print "Direction $code already existed. Remove it\n";  
 9      `rm -rf $code`;  
10 }  
11 print  "create $code direction\n";  
12 `mkdir $code`;  
13   
14   
15 #Find orig file and modifed file for mkdir diff file  
16 foreach $orig_file_name (`find . -name "*.orig" -size +0c`){  
17     chomp ($orig_file_name);  
18     $file_name = substr($orig_file_name, 0, index($orig_file_name, ".orig"));  
19     if(-f $file_name)  
20     {  
21         $diff_file_name = $file_name.".diff";  
22         print "find $file_name\n";  
23         print "find $orig_file_name\n";  
24         print "create $diff_file_name\n";  
25         `diff -c $orig_file_name $file_name > $diff_file_name`;  
26          
27         @dTree = split(/\//, $orig_file_name);  
28         $a = @dTree;  
29         $d = $code;  
30         for($i = 1; $i < $a - 1; $i++)  
31         {  
32             $d = "$d/$dTree[$i]";  
33             `mkdir $d`;  
34         }  
35         print "create $d\n";  
36         print "copy $file_name, $orig_file_name, $diff_file_name to $d\n";  
37         `cp $file_name $d`;  
38         `cp $orig_file_name $d`;  
39         `cp $diff_file_name $d`;  
40     }  
View Code

 

  

perl 脚本实现简单搜索修改文件并生成diff文件

标签:style   blog   http   io   color   ar   os   sp   for   

原文地址:http://www.cnblogs.com/VincentLEcho/p/4105455.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!