Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 通过项目中的多个文件快速搜索特定代码行的方法_Linux_Search - Fatal编程技术网

Linux 通过项目中的多个文件快速搜索特定代码行的方法

Linux 通过项目中的多个文件快速搜索特定代码行的方法,linux,search,Linux,Search,我目前正在从事一个包含50多个.h和.C文件的C项目。我想知道是否有一种快速的方法可以搜索特定的代码行(例如,ctrl+f用于窗口),而不必逐个搜索每个文件 提前感谢您可以使用grep使用终端/命令行搜索文件 grep -R "string_to_search" . -要递归,也要在所有子目录中搜索 那你想要什么 然后是位置。对于当前目录如果不使用*nix并使用find/grep,请安装cygwin,例如 find . -name '*\.[ch]' | xargs grep -n 'myfu

我目前正在从事一个包含50多个.h和.C文件的C项目。我想知道是否有一种快速的方法可以搜索特定的代码行(例如,ctrl+f用于窗口),而不必逐个搜索每个文件


提前感谢

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

grep -R "string_to_search" .
-要递归,也要在所有子目录中搜索

那你想要什么


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

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

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

在Linux/Unix上,有一个名为的命令行工具,您可以使用它在多个文件中搜索字符串。例如,如果我想在所有文件中搜索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--global/regular expression/print:

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

如果您使用的是文本编辑器和shell,那么您可以使用shell工具,如
grep

grep -R "some pattern" directory

但是你应该考虑使用一个IDE,比如Eclipse(它不仅仅是java),NETBeBes(有一个C插件)或者KDebug。IDE有键盘快捷键,比如“到处找高亮函数被调用”。


当然也有Emacs…

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

findstr /? 

从命令行可以得到用法。它还可以递归子目录(/s).

您是否尝试过使用记事本++?您使用的是什么操作系统?这实际上取决于您的代码编辑器或IDE,以及您的操作系统。
grep
如果您使用的是Unix/Linux,也有windows版本。但这与C代码无关。我使用的是Linux操作系统,使用的是文本编辑器(gedit)对于我的代码,给出的关闭原因是不适用的——正如关闭消息本身所说的“除非它们直接涉及主要用于编程的工具”这显然是这个问题的情况。这太完美了。非常感谢!做了一些更正。-我忽略了二进制文件;-我不区分大小写。模式是正则表达式,而不是通配符模式。很好的一点,感谢更新@slimThank you-grep命令刚刚为我节省了数小时的手动筛选文件的时间。这我也会浏览所有的二进制文件。