在源代码中搜索

时间:2014-02-14 11:57:05

标签: bash code-analysis

我经常做不同的项目,有时缺乏文档。

所以我决定使用开源代码来了解人们如何解决不同的问题。

我的想法是,如果我遇到了我不知道如何使用的功能,我会寻找之前使用过该功能的不同开发人员。

方法: 我下载了一些由其他人完成的相当不错的项目并将它们放入一个文件夹中。

现在,如果我不知道如何使用某个函数(例如main()),我会这样做:

find . -name \*.py  | xargs cat | grep -n "main()"

因此,我得到了它的使用示例:  enter image description here

但是有一个问题。我不知道哪个文件是例子。如果有可能得到文件的名称和行数,那将是完美的 似乎是使用“cat”命令的限制,因为它将所有文件混合在一起,因此我得到关于数字的信息不在文件中而是在cat输出中。所以我认为这种方法在根本上是不好的。

即。 我希望能够在众多源代码中查找函数/符号 并获取有关满足特定组合的行和文件的信息 我更喜欢控制台方式。

有什么建议吗?

4 个答案:

答案 0 :(得分:3)

试试这个:

find . -name \*.py -exec grep -nH "main()" {} \;

<强>解释

“-exec”选项表示执行以下命令,直到\;对于它找到的每个文件。

grep的“-H”选项使它打印出找到该字符串的文件的名称。

“ - n”选项会导致grep打印行号。

{}是一个占位符,可以扩展为刚刚找到的“查找”文件的名称。

答案 1 :(得分:1)

你只需要grep命令:

$ grep -nr 'main()' /path/to/projects/folder/* | grep '.py:'

答案 2 :(得分:1)

想要搜索源文件?为什么不http://beyondgrep.com/

答案 3 :(得分:0)

我不会从bash的角度回答你。

我不知道您使用的是哪个编辑器/ IDE,但是对于代码剖析而言,没有更好的工具可供我使用:

  • 使用Ctags组合的Vim
  • Ctrl-p,Ctrl-p funky和MRU插件+
  • 正确搜索和正则表达式使用。
  • good vim debugger

没有部分代码无法检查。如果您正在使用其他工具,请抱歉,我只是建议您找到最适合我的代码分析。