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