zoukankan      html  css  js  c++  java
  • perl 脚本实现简单搜索修改文件并生成diff文件

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

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

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

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

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

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

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

    具体实现如下:

    [python] view plaincopy
     
     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
    ";  
     9      `rm -rf $code`;  
    10 }  
    11 print  "create $code direction
    ";  
    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
    ";  
    23         print "find $orig_file_name
    ";  
    24         print "create $diff_file_name
    ";  
    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
    ";  
    36         print "copy $file_name, $orig_file_name, $diff_file_name to $d
    ";  
    37         `cp $file_name $d`;  
    38         `cp $orig_file_name $d`;  
    39         `cp $diff_file_name $d`;  
    40     }  
    View Code
      
  • 相关阅读:
    log4j日志格式化
    日志级别是如何工作?
    Java拦截过滤器模式
    js实现图片轮播
    js实现表格的增删改查
    企业外贸网站建设的要求及注意事项
    逛知乎才知网站建设不只有wordpress建站系统,小白值得收藏
    三款适用于企业建站的CMS建站系统
    前端开发常用的网站整理
    网站建设教程:虚拟主机如何安装PageAdmin建站系统
  • 原文地址:https://www.cnblogs.com/VincentLEcho/p/4105455.html
Copyright © 2011-2022 走看看