通信人家园
标题: 使用perl脚本批量修改代码文件头的一种方法 [查看完整版帖子] [打印本页]
时间: 2015-8-19 10:10
作者: as3960
标题: 使用perl脚本批量修改代码文件头的一种方法
此脚本运行的思路,为大致如下:
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!\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_NAME1.v \n"; system "cp -r $File::Find::name $File::Find::name.bak";
open(VFile,"$File::Find::name.bak")or die "Can't open filenameFile::Find::name.bak !\n"; open(RESULT1,">$File::Find::name") or die "Can't open File::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);
}
}
通信人家园 (https://www.txrjy.com/) |
Powered by C114 |