【shell脚本】匹配函数的正则表达式

自己写了一个统计代码中的函数以及函数个数的正则表达式:

grep '(' filename.c | grep ')' | grep -v ';' | grep '^[a-z]|[A-Z]'

原理:

1.分析函数的语法特点:

  • 函数实现部分的代码,所在行没有分号,因此,使用grep -v ';'过滤掉有分号的行;
  • 函数实现部分可能有返回值声明,因此,使用grep'^[a-z]|[A-Z]',获取以字母开头的行;
  • 函数实现部分肯定有括号,因此使用grep'(' filename.c | grep')'

缺点:

1.不能匹配以空白字符开头的函数实现;

2.不能匹配形参不在同一样的函数实现;

总结:

正则表达式是针对某种书写格式或者规律进行匹配的方法,它采用的是穷举法,因此只能尽量地去覆盖到所有的书写格式或规律,但是不能保证覆盖到全部,故我们应该根据我们目标格式去书写正则表达式,不必太过于追求完美,只要能达到目标就行^_^

参考文献:

[1].鸟哥的Linux私房菜-基础篇关于shell脚本的介绍,http://vbird.dic.ksu.edu.tw/linux_basic/0340bashshell-scripts.php

posted @ 2012-09-17 23:51  朝雾之归乡  阅读(1499)  评论(0编辑  收藏  举报