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

Ada*_*dam 9 linux search

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

先感谢您

Mik*_*ike 9

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

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

-r以递归方式进行搜索,以便获取所有目录中的所有文件(来自当前目录).-s如果遇到不可读的文件,则忽略警告.

现在,如果您想搜索自定义内容,并且您不记得这种情况,那么可以选择-i允许不区分大小写的搜索.

~/sandbox$ grep -rsi "myint" *
test.c:    int myInt = 5;
test.c:    int MYINT = 10; 
Run Code Online (Sandbox Code Playgroud)

你也可以使用正则表达式,以防你忘记你正在寻找的东西被调用(实际上名称'grep'来自sed命令g/re/p - global/regular expression/print:

~/sandbox$ grep -rsi "my.*" *
test.c:    int myInt = 5;
test.c:    int MYINT = 10;
test.c:    float myfloat = 10.9;
Run Code Online (Sandbox Code Playgroud)

  • 太棒了.非常感谢! (2认同)

Pet*_*ica 5

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

find . -name '*\.[ch]' | xargs grep -n 'myfuncname'
Run Code Online (Sandbox Code Playgroud)