Zur Suche von Textteilen/Strings in bestimmten Dateien, die in verschiedenen Verzeichnissen liegen, kann folgendes Kommando verwendet werden:
find . -name *.txt -exec grep Bauteil {} \; -print Bauteilliste: ingesamt 25 Bauteile ./relativer_verzeichnispfad_1/datei_1.txt hohe Bauteile, größer 2m kommen kleine Bauteile werden getragen Bauteillisten gibt es unter ... ./relativer_verzeichnispfad_2/datei_2.txt
Das Suchkommando find startet vom aktuellen Verzeichnis „.“ die Suche im aktuellen und in allen Unterverzeichnissen nach Dateien mit der Endung *.txt.
Die gefundenen Dateien werden mit dem nach -exec angegebenem grep Kommando nach dem String „Bauteil“ durchsucht und die gefundenen Zeilen mit -print ausgegeben.
Eine Besonderheit ist, das erst die gefundenen Zeilen und danach die den String enthaltene Datei angezeigt wird. Dabei steht der Dateiname mit dem relativen Pfad von der aktuellen Position im Dateisystem.
Eine Alternative zu dem -exec Schalter im find ist die Übergabe der Dateinamen an das Kommando xargs via Pipe:
find . -name *.txt | xargs grep Bauteil ./relativer_verzeichnispfad_1/datei_1.txt:Bauteilliste: ./relativer_verzeichnispfad_1/datei_1.txt:ingesamt 25 Bauteile ./relativer_verzeichnispfad_2/datei_2.txt:hohe Bauteile, größer 2m kommen ./relativer_verzeichnispfad_2/datei_2.txt:kleine Bauteile werden getragen ./relativer_verzeichnispfad_2/datei_2.txt:Bauteillisten gibt es unter ...