我目前正在开发一个包含50多个.h和.c文件的C项目.我想知道是否有一种快速的方法来搜索某些代码行(例如,对于一个窗口,例如ctrl + f),而不必逐个实际搜索每个文件.
先感谢您
在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)
如果不使用* nix,请安装cygwin并使用find / grep,例如
find . -name '*\.[ch]' | xargs grep -n 'myfuncname'
Run Code Online (Sandbox Code Playgroud)