提取.c文件中的函数名

来源:互联网 发布:入门钢笔字帖推荐 知乎 编辑:程序博客网 时间:2024/04/29 16:51

shell脚本提取.c生成函数原型

写了个脚本主要是为了给自己用的,顺带共享下。作用是提取.c文件中的函数名,生成函数原型。
#!/bin/bash
sourcesfile=$1
if [[ -f $sourcesfile ]];then
    grep "\w\+[ ]\+\w\+([^()]*)[ ]*{\?$" $sourcesfile |grep -v "main" |sed -e 's/{\?$/;/' > "${sourcesfile%.*}.h"
fi

说明:
grep与perl风格的正则符号的区别
    \+      +
    \?      ?
    (       \(  注:普通括号
    )       \)
    {       \{

shell中操作字符串的符号%
    %符号会把匹配成功的东西丢掉(从后面开始,从前面开始是#),感觉像截取掉。
    例如
    str=test.c
    echo ${str%.*}.h
    打印结果:test.h

    再来个简单的例子
    str2=123456
    echo ${str2%56}
    打印结果:1234

//测试数据
int add(int a, int b){
    return a+b;
}

int stringtoint(char * str)
{
    return 0;
}
void f();
int main(){
    int n = 3;
    if( n <= 3 ){
        printf("n <=3");
    }
    add(3,4);
    return 0;
}
void f(){
    printf("xy");
}

脚本运行结果为:
int add(int a, int b);
int stringtoint(char * str);
void f();

0 0
原创粉丝点击