サブディレクトリ内の特定のファイルでのみ文字列を検索する

サブディレクトリ内の特定のファイルでのみ文字列を検索する

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をサポートするシェルを実行していない場合は、再帰的な--includegrepを実行してgrep特定のパターンに一致するファイルのみを考慮するように指示できます。ファイル名パターンの周りに引用符があります。これはシェルではなくgrepによって解釈されます。

grep -rn --include='*.cs' GetTypes .

grep -rfindディレクトリナビゲーション部分とgrepテキスト検索部分にはポータブルツール(一部のシステムにはまったくないツール)のみを使用してください。

find . -name '*.cs' -exec grep -n GetTypes {} +

おすすめ記事