![特定のファイル内の特定のテキストを再帰的に検索しますが、特定のフォルダ内のみです。](https://rvso.com/image/1345296/%E7%89%B9%E5%AE%9A%E3%81%AE%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E5%86%85%E3%81%AE%E7%89%B9%E5%AE%9A%E3%81%AE%E3%83%86%E3%82%AD%E3%82%B9%E3%83%88%E3%82%92%E5%86%8D%E5%B8%B0%E7%9A%84%E3%81%AB%E6%A4%9C%E7%B4%A2%E3%81%97%E3%81%BE%E3%81%99%E3%81%8C%E3%80%81%E7%89%B9%E5%AE%9A%E3%81%AE%E3%83%95%E3%82%A9%E3%83%AB%E3%83%80%E5%86%85%E3%81%AE%E3%81%BF%E3%81%A7%E3%81%99%E3%80%82.png)
多数のフォルダーとファイルを含むネストされたフォルダー構造があります。
ファイル内でパターン (例: 「sampletext」) を検索するにはどうすればよいでしょうか。ただし、ファイル名がパターンに一致する場合 (例: .txt 拡張子を持つファイル内だけを検索する) のみで、最後に含まれるフォルダー名が別のパターン (例: 「data」) に一致する必要があります。
シェル スクリプトを書いて実行することもできると思いますが、新しいことを学べる賢いワンライナーが存在するはずです。
前もって感謝します
答え1
ネストされたフォルダ構造があるとおっしゃっているので、*data*/*txt
必要なことはできないと思います。
find . –type d –name "*data*" –exec sh –c "grep sampletext /dev/null {}/*.txt" \;
これは、ファイルが 1 つしかないディレクトリで実行されている場合でも、ファイル名を/dev/null
強制的に表示するために存在します。grep
.txt