特定のファイル内の特定のテキストを再帰的に検索しますが、特定のフォルダ内のみです。

特定のファイル内の特定のテキストを再帰的に検索しますが、特定のフォルダ内のみです。

多数のフォルダーとファイルを含むネストされたフォルダー構造があります。

ファイル内でパターン (例: 「sampletext」) を検索するにはどうすればよいでしょうか。ただし、ファイル名がパターンに一致する場合 (例: .txt 拡張子を持つファイル内だけを検索する) のみで、最後に含まれるフォルダー名が別のパターン (例: 「data」) に一致する必要があります。

シェル スクリプトを書いて実行することもできると思いますが、新しいことを学べる賢いワンライナーが存在するはずです。

前もって感謝します

答え1

ネストされたフォルダ構造があるとおっしゃっているので、*data*/*txt必要なことはできないと思います。

find . –type d –name "*data*" –exec sh –c "grep sampletext /dev/null {}/*.txt" \;

これは、ファイルが 1 つしかないディレクトリで実行されている場合でも、ファイル名を/dev/null強制的に表示するために存在します。grep.txt

関連情報