GetTypes()
すべてのC#ソースファイル()ディレクトリ/サブディレクトリ.cs
で関数を見つける必要があるとします。
使用しましたが、grep -rn GetTypes *.cs
エラーが発生しましたgrep: *.cs: No such file or directory
。使用するgrep -rn GetTypes *
必要がありますが、この場合はすべてのファイルのみが表示されるわけではありません*.cs
。
.cs
ファイル内の文字列のみを検索するには、どのコマンドを使用する必要がありますか?
答え1
シェルがbash≥4の場合は、shopt -s globstar
シェルを変更してください~/.bashrc
。シェルがzshの場合は問題ありません。だからあなたは実行することができます
grep -n GetTypes **/*.cs
**/*.cs
*.cs
現在のディレクトリまたはそのサブディレクトリで繰り返し一致するすべてのファイルを表します。
**
grepをサポートするシェルを実行していない場合は、再帰的な--include
grepを実行してgrep
特定のパターンに一致するファイルのみを考慮するように指示できます。ファイル名パターンの周りに引用符があります。これはシェルではなくgrepによって解釈されます。
grep -rn --include='*.cs' GetTypes .
grep -r
find
ディレクトリナビゲーション部分とgrep
テキスト検索部分にはポータブルツール(一部のシステムにはまったくないツール)のみを使用してください。
find . -name '*.cs' -exec grep -n GetTypes {} +
答え2
すばらしい小さいgrep/findの取り替えを確かめなければなりません。ack
。特に、ソースコードファイルのディレクトリを検索するために使用されます。
あなたのコマンドは次のとおりです。
ack --csharp GetTypes
答え3
GNUを使用している場合は、grep
再帰ディレクトリナビゲーションに含めるファイルを指定できます。
grep --include '*.cs' -rn GetTypes .
(最後のピリオドは、巡回用のルートディレクトリとして現在の作業ディレクトリを表します。)
答え4
私はfindとgrepの組み合わせを使用します。
find . -name "*.cs" | xargs grep "GetTypes" -bn --color=auto
たとえば、すべてのファイルを表示したい場合は、そのディレクトリに置き換えて削除find
できます。.
-name
の場合、grep
位置-bn
と行番号が印刷され、探して--color
いる内容を強調表示して目に役立ちます。