有没有一种方法可以使用bash脚本(也使用grep
,awk
,sed
,...)搜索继承给定基类的类(或结构)?
我打了个如下电话:./get_classes.sh 'CBaseClass' src/
编辑1:
我已经尝试过的grep -r ':.*CBaseClass' src/
此解决方案有效,但仅当:
和CBaseClass
之间没有换行符时才可用。
这里的另一个问题是,当您在同一个标头中都有两个都继承CBaseClass的类时,grep将默认设置为贪婪匹配(从拳头:
到第二个CBaseClass
)。
最佳答案
您想要这样的东西:
find src/ \( -name \*.h -o -name \*.cpp -o -name \*.cxx \) -exec egrep '(class|struct).*:.*public.*CBaseClass'{} \; -print
在调用
get_classes.sh 'CBaseClass' src/
时执行