プログラムのソースコードをいくつかダウンロードしてフォルダに入れました 端末のフォルダから関数宣言を探したいのですが、シェルコマンドでそれを行うにはどうすればよいですか? ありがとう!
質問する
18108 次
3 に答える
17
これをやってみてください
grepを使用:
grep -Hri function_name .
パスのみが必要な場合:
grep -ril function_name .
説明
- 末尾
.
は現在のディレクトリを表します -i
:大文字と小文字を区別しない-r
:再帰的-H
:各一致のファイル名を出力します-l
:通常の出力を抑制します。代わりに、出力が通常出力される各入力ファイルの名前を出力します。
見るman grep
最後だが大事なことは
興味深いツールはack.svn
です。 、.cvs
、.git
dirs などでの検索を回避します... コードを検索するように設計されています。
例 :
$ 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>
または単にファイルパス:
$ 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
.
(とack
比べてgrep
)で終わる必要はありません
于 2013-03-28T23:08:54.470 に答える
0
CScopeを使用してみてください。vi/vim もインストールする必要があります。
インストールしたら、関数を見つけたいフォルダーで次のコマンドを実行するだけです。
cscope -R
その後、メニューが表示され、すべてのシンボル、関数定義、関数を呼び出す関数などを検索するための多くのオプションが表示されます。
于 2015-06-23T18:16:03.267 に答える
0
これは、開いたディレクトリとサブディレクトリ内のすべてのファイルを調べ(ファイルまたはディレクトリ名にスペースがあると混乱しますが)、それらすべてから、入力した FUNCTION を検索し、へのパスを出力しますファイルを開き、一致する行を表示します。開いたディレクトリに ing して実行しcd
ます (FUNCTION を探している関数に置き換えます)。
find . -type f | xargs grep FUNCTION
于 2013-03-28T23:13:01.393 に答える