zoukankan      html  css  js  c++  java
  • 一段用来清除C++/C代码中空白行的perl脚本

    用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($_);
    }



  • 相关阅读:
    Cocos2dx-背景无限循环播放
    centos 7端口和防火墙
    图片裁剪
    spring-boot图片压缩
    vue cli简介
    spring-boot的配置(实时生效)
    spring-boot打成war包放入tomcat运行
    spring-boot上传图片并访问
    linux链接ssh
    mysql远程访问
  • 原文地址:https://www.cnblogs.com/qianyuming/p/2312760.html
Copyright © 2011-2022 走看看