![Rekursives Suchen nach bestimmtem Text in bestimmten Dateien, aber nur in bestimmten Ordnern](https://rvso.com/image/1345296/Rekursives%20Suchen%20nach%20bestimmtem%20Text%20in%20bestimmten%20Dateien%2C%20aber%20nur%20in%20bestimmten%20Ordnern.png)
Ich habe eine verschachtelte Ordnerstruktur mit vielen Ordnern und Dateien.
Wie suche ich in Dateien nach einem Muster, z. B. „Beispieltext“, aber nur, wenn der Dateiname einem Muster entspricht (z. B. nur in Dateien mit der Erweiterung .txt suchen) und der Name des enthaltenen Ordners schließlich einem anderen Muster entsprechen muss? (z. B. „Daten“).
Ich bin sicher, dass ich dafür ein Shell-Skript schreiben könnte, aber ich bin sicher, dass es clevere Einzeiler gibt, die mir neue Dinge beibringen werden!
Dank im Voraus
Antwort1
Da Sie sagen, dass Sie eine verschachtelte Ordnerstruktur haben, glaube ich, dass *data*/*txt
dies nicht das ist, was Sie brauchen. Ich schlage vor
find . –type d –name "*data*" –exec sh –c "grep sampletext /dev/null {}/*.txt" \;
Dies /dev/null
dient dazu, grep
die Anzeige des Dateinamens zu erzwingen, auch wenn es in einem Verzeichnis ausgeführt wird, das nur eine .txt
Datei enthält.