用Umbrello自动生成框架之后,里面有很多临时用不着的空行,而且生成的头文件都是单词开头大写字母,但是到了内部的#include就成了小写,于是写了个脚本解决这个问题
对于#ifndef..#define .. #endif在 #define行之后及 #endif行之前会各加一个空行
perl对我而言是救急语言,写的草率,将就着用吧……
使用:
ls *.cpp *.h|./changeFile.pl
#!/usr/bin/perl -w #TO DO: #replace all header includes which are in lowercase #remove all blank lines #among all the .cpp files in the argument list @headers= qw/ActThread.h InvalidSettingsException.h PacketHeader.h QString.h QObject.h QThread.h SniffThread.h DialogManager.h LuaSetDialog.h PacketList.h Thread.h Exception.h LuaSettings.h SetDialog.h ThreadManager.h HttpSetDialog.h LuaThread.h Settings.h HttpSettings.h MainWindow.h SniffSetDialog.h HttpThread.h Packet.h SniffSettings.h/; sub editFile { $fileName=$_[0]; $tmpFileName=$fileName.".tmp"; if($fileName ne "." && $fileName ne "..") { if(! open READFILE,$fileName) { die "Cannot open file"; } if(! open TMPFILE,">".$tmpFileName) { die "Cannot create file"; } print "File Name :".$fileName."\n"; while(<READFILE>) { if(/^\n/) { #print "BlankLine"; }else{ $line=$_; if(!/_H/) { foreach $headerFile (@headers) { if(/($headerFile)/i){ $line=~s/$1/$headerFile/; } } } if(/endif/){ print TMPFILE "\n";} print TMPFILE $line; if(/define/){ print TMPFILE "\n";} } } close READFILE; close TMPFILE; `rm $fileName`; `mv $tmpFileName $fileName`; } } while(<>){ chomp($_); editFile($_); }
|
请发表评论