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
//测试数据
intadd(inta,intb){
returna+b;
}
intstringtoint(char*str)
{
return0;
}
voidf();
intmain(){
intn=3;
if(n<=3){
printf("n<=3");
}
add(3,4);
return0;
}
voidf(){
printf("xy");
}
脚本运行结果为:
intadd(inta,intb);
intstringtoint(char*str);
voidf();
如果觉得《提取.c文件中的函数名》对你有帮助,请点赞、收藏,并留下你的观点哦!