通过项目中的许多文件搜索某些代码行的快速方法

时间:2014-03-19 13:52:18

标签: linux search

我目前正在开发一个包含50多个.h和.c文件的C项目。我想知道是否有一种快速的方法来搜索某些代码行(例如,对于一个窗口,例如ctrl + f),而不必逐个实际搜索每个文件。

提前谢谢

5 个答案:

答案 0 :(得分:9)

在Linux / Unix上有一个名为grep的命令行工具,您可以使用它来搜索多个文件中的字符串。例如,如果我想在所有文件中搜索strcpy

~/sandbox$ grep -rs "strcpy" *
test.c:    strcpy(OSDMenu.name,"OSD MENU");

-r递归搜索,以便您搜索所有目录(来自当前目录)中的所有文件。如果您遇到不可读的文件,-s会忽略警告。

现在,如果您想搜索自定义内容,并且您无法记住-i之类的选项,以允许不区分大小写的搜索。

~/sandbox$ grep -rsi "myint" *
test.c:    int myInt = 5;
test.c:    int MYINT = 10; 

你还可以使用正则表达式,以防你忘记了你正在寻找的内容(实际上名称,' grep'来自sed命令g / re / p - 全局/正则表达式/打印:

~/sandbox$ grep -rsi "my.*" *
test.c:    int myInt = 5;
test.c:    int MYINT = 10;
test.c:    float myfloat = 10.9;

答案 1 :(得分:4)

如果您没有使用* nix并使用find / grep,请安装cygwin,例如

find . -name '*\.[ch]' | xargs grep -n 'myfuncname'

答案 2 :(得分:3)

您可以使用grep使用终端/命令行搜索文件。

grep -R "string_to_search" .

-R是递归的,也在所有子目录中搜索

然后你想要的字符串

然后是位置,。对于当前目录

答案 3 :(得分:2)

如果您使用的是文本编辑器和shell,则可以使用grep之类的shell工具。

grep -R "some pattern" directory

但是你应该考虑使用Eclipse(不仅仅是Java),Netbeans(有一个C插件)或KDevelop这样的IDE。 IDE具有键盘快捷键,例如“在任何地方都可以调用突出显示的函数”。

当然还有Emacs ......

答案 4 :(得分:1)

在Windows上,您可以使用findstr,它将查找包含完全匹配或正则表达式与指定字符串/模式匹配的字符串的文件。

findstr /? 
从命令行

将为您提供使用方法。它还可以递归子目录(/ s)。