去除c代码里面的宏定义代码块的程序

来源:互联网 发布:网络打印机主机 编辑:程序博客网 时间:2024/05/16 08:01
#!/bin/bash


find . -name "*.c" > dstfile
while read line
do
    del_macro.py USING_SMUX_MODULE $line

done <dstfile


#!/usr/bin/python


import linecache
import os
import re
import sys
macro=sys.argv[1]
macro="#ifdef " + macro


dstfile=sys.argv[2]
#
def macro_delete(macro, dstfile):
    fp = open(dstfile,'r+');
    i=0;
    flag=0;
    str=fp.readlines();


    for line in str:
        #if (line.rstrip() == "#endif" && flag==1):
        if (re.match('#endif', line) != None and flag==1):
            line="";
            flag=0;
        #if (line.rstrip() == macro):
        if (re.match(macro, line) != None):
            line="";
            flag=1;
        if(flag == 1):
            line="";
        str[i]=line;
        i=i+1;
    cmd="> " + dstfile
    os.system(cmd);
    fp.seek(0);
    fp.writelines(str);
    fp.close();


macro_delete(macro, dstfile);

0 0
原创粉丝点击