7

たくさんのファイルがあり、どこにあるか知りたいですMYVAR

.ymlファイルの1つにあると確信していますがgrep、ファイルタイプを指定する方法がマニュアルに見つかりません。

4

4 に答える 4

15
grep -rn --include=*.yml "MYVAR" your_directory

grepはデフォルトで大文字と小文字を区別し(大文字と小文字を無視するように-iを渡す)、文字列だけでなく正規表現も受け入れることに注意してください。

于 2012-10-24T21:47:10.050 に答える
1

grepにファイルタイプを指定するのではなく、ファイルのリストだけを指定します。ただし、シェルはパターンを拡張して、grepにファイルの正しいリストを与えることができます。

$ grep MYVAR *.yml

ファイルがすべて1つのディレクトリにない場合.ymlは、アンティを上げて使用する方が簡単な場合がありますfind

$ find -name '*.yml' -exec grep MYVAR {} \+

これにより、現在のディレクトリから再帰的に深く、.ymlで終わるファイルがすべて検出されます。次に、そのファイルのリストを中括弧のペアに置き換えます{}。末尾は、スイッチが終了したことを\+示す特別なfind区切り文字にすぎません。-execその結果、ファイルのリストが照合され、grepに渡されます。

于 2012-10-24T21:49:14.483 に答える
0
find . -name \*.yml -exec grep -Hn MYVAR {} \;
于 2012-10-24T21:50:28.067 に答える
0

すべての.ymlファイルが1つのディレクトリにある場合は、そのディレクトリにcdしてから、...

grep MYWAR *.yml

すべての.ymlファイルが複数のディレクトリにある場合は、それらのディレクトリの先頭にcdしてから、...

grep MYWAR `find . -name \*.yml`

.ymlファイルが配置されているディレクトリの先頭がわからず、システム全体を検索したい場合...

grep MYWAR `find / -name \*.yml`

最後のオプションでは、すべてのディレクトリを読み取るためにroot権限が必要になる場合があります。

上記の`文字は、キーボードの〜キーと一緒に配置されている文字です。

于 2012-10-24T21:59:36.943 に答える