我下载了一些程序的源代码并把它放在一个文件夹中我想从终端上的文件夹中找到一个函数声明,如何用shell命令呢?谢谢!
Gil*_*not 16
使用grep:
grep -Hri function_name .
Run Code Online (Sandbox Code Playgroud)
如果你只想要路径:
grep -ril function_name .
Run Code Online (Sandbox Code Playgroud)
.代表当前目录-i:不区分大小写-r:递归-H:打印每个匹配的文件名-l:抑制正常输出; 而是打印通常打印输出的每个输入文件的名称.看到 man grep
一个有趣的工具是ACK,它会避免搜索中.svn,.cvs,.git显示目录和这样的......它的目的是搜索代码.
示例:
$ cd /usr/share/perl5
$ ack -r 'Larry\s+Wall'
site_perl/Inline/C.pm
370:# bindings to. This code is mostly hacked out of Larry Wall's xsubpp program.
core_perl/overload/numbers.pm
5:# Copyright (C) 2008 by Larry Wall and others
core_perl/CPAN.pm
876:# From: Larry Wall <larry@wall.org>
Run Code Online (Sandbox Code Playgroud)
或只是文件路径:
$ ack -rl 'Larry\s+Wall'
vendor_perl/LWP.pm
site_perl/Inline/C.pm
core_perl/overload/numbers.pm
core_perl/CPAN.pm
core_perl/SelfLoader.pm
core_perl/AutoLoader.pm
core_perl/AutoSplit.pm
core_perl/Test/Harness.pm
core_perl/XSLoader.pm
core_perl/DB.pm
Run Code Online (Sandbox Code Playgroud)
不需要结尾(.与之ack相比grep)