10

たくさんのフォルダーとサブフォルダーがあります。それぞれには、とりわけ、index.yml有用なデータで呼び出されるテキスト ファイルが含まれています。index.yml検索文字列のインスタンスを見つけるために、さまざまなファイルをすべて検索したいと考えています。数行のコンテキストと、index.yml見つかったファイルのディレクトリを確認できるはずです。

これはほとんど機能しますが、ファイル名がわかりません:

cat `find . -name 'index.yml'`| grep -i -C4 mySearchString

どうすればこれを実行してファイル名を取得できますか?

msysを使用してWindowsに行き詰まっています。完全なGNU grepを持っていないように見えるので、実行できないgrep --excludegrep -R、他のSOの質問で提案されているように注意してください。

4

2 に答える 2

10

これを試して:

find -name "index.yml" -exec grep -i -H -C4 pattern {} \;

注: 実際には msys でテストされていません。

于 2010-08-21T21:14:35.763 に答える
0

1つの可能性(msysが正確に何を受け入れるかはわかりません):

 find . -name index.yml -exec grep -i -C4 mySearchString /dev/null {} +

/dev/nullは、パス名が一致するたびに出力されるように、少なくとも2つのパス名があることを確認するのに役立ちます。grepの-Hオプションも同様の効果があります。

-exec...+構文を使用findすると、コマンドの1つのインスタンスに複数のパス名が渡されます。実装されていない場合は、-exec...を使用する必要があります\;

于 2010-08-21T21:19:11.320 に答える