在不同的文件中查找重复的函数名



在过去15年左右的时间里,我一直在合并各种开发人员/CAD起草人使用的所有源代码文件。似乎每个人都使用相同的代码库,直到大约7年前,当每个人似乎都在本地复制所有文件并在本地使用/编辑它们时。

我已经成功/痛苦地合并了所有具有相同名称的文件。然而,我发现有时,不同名称的文件包含具有相同名称和参数的函数。期望函数的一种实现的工具可能最终调用不同的实现,这取决于加载的文件。

是否有一个简单的方法来搜索所有的文件重复的函数名?

例如,函数看起来像这样:

(defun MyInStr (SearchIn SearchFor)
    ...
)

如何在所有文件中搜索(defun MyInStr (SearchIn SearchFor)

我建议使用ctags来生成TAGS文件,然后在其中搜索重复的行:

$ ctags -R
$ sort TAGS -o - | uniq -c | grep -v '^ *1 '

上面的命令将产生如下输出:

...
3   defun MyInStr (SearchIn SearchFor)
...

,它将告诉您MyInStr在代码库中以相同的签名重新定义了3次。

您还可以使用sed提取函数名称,或者使用perllisppython任何其他脚本工具对TAGS文件进行更复杂的处理。

相关内容

  • 没有找到相关文章

最新更新