C114门户论坛百科APPEN| 举报 切换到宽版

亚星游戏官网

 找回密码
 注册

只需一步,快速开始

短信验证,便捷登录

搜索

军衔等级:

亚星游戏官网-yaxin222  新兵

注册:2009-11-24
发表于 2015-8-19 10:10:13 |显示全部楼层
此脚本运行的思路,为大致如下:
u  找到当前目录下的所有.v文件;
u  将所有需要修改的.v文件的文件名存入一个log文件中;(方便查阅哪些.v文件进行了修改)
u  调用插入文件头的子程序;
u  完成所有.v文件的文件头中内容添加操作;
u  保存所有修改的.v文件;
详细的程序说明如下:

#!/usr/bin/perl -w
use strict;
use File::Find;
#将路径指向当前目录
chomp (my $dir = `pwd`);
#生成报告文件,里面存储了所有改动的.v文件的文件名
open(RESULT,">insert_result.log") or die "Can't open insert_result.log亚星游戏官网-yaxin222!\n";
print "***********start insert***************\n";
find(\&find_file,$dir);   #调用插入文件头的子程序
print "***********insert finish***************\n";
close(RESULT) or die  "Can't close insert_result.log : $!\n";
#子程序
sub find_file
{
    if($File::Find::name =~ m/\/crp\/(.*).v$/g) #找到当前目录下crp文件中的所有.v文件(根据实际情况修改具体的文件名)
    {
        print RESULT "FILE_NAME亚星游戏官网-yaxin2221.v \n";
        system "cp -r $File::Find::name $File::Find::name.bak";   
           open(VFile,"$File::Find::name.bak")or die "Can't open filename亚星游戏官网-yaxin222File::Find::name.bak 亚星游戏官网-yaxin222!\n";
           open(RESULT1,">$File::Find::name") or die "Can't open 亚星游戏官网-yaxin222File::Find::name : $!\n";
           while(<VFile>)
           {                  
                if(m/DEPARTMENT/ig) #搜索插入行的前一行的关键字,这一点比较关键,该例子中前一行的关键字为“DEPARTMENT”(需要保证该行后面全面需要插入)
                {
                  print RESULT1 $_;
                  print RESULT1 "//MANUAL_PERCENT:    100% \n";#蓝色部分为需要插入的内容
                }
             else
             {
                  print RESULT1 $_;
             }               
           }
        close(RESULT1) or die  "Can't close $1_cp.v : $!\n";
        close(VFile);
    }
}

举报本楼

您需要登录后才可以回帖 登录 | 注册 |

手机版|C114 ( 沪ICP备12002291号-1 )|联系大家 |网站地图  

GMT+8, 2024-11-17 21:43 , Processed in 0.278241 second(s), 15 queries , Gzip On.

Copyright © 1999-2023 C114 All Rights Reserved

Discuz Licensed

回顶部
XML 地图 | Sitemap 地图