1 votes

Recherche récursive de texte spécifique dans des fichiers spécifiques mais uniquement dans des dossiers spécifiques.

J'ai une structure de dossiers imbriqués contenant beaucoup de dossiers et de fichiers.

Comment puis-je rechercher à l'intérieur des fichiers un motif comme "texteexemple", mais seulement si le nom de fichier correspond à un motif (par exemple, rechercher uniquement à l'intérieur des fichiers avec l'extension .txt) et enfin le nom du dossier contenant doit correspondre à un autre motif? (par exemple "données").

Je suis sûr que je pourrais écrire un script shell pour le faire, mais je suis sûr que des astuces existent pour m'apprendre de nouvelles choses!

Merci d'avance

2voto

Scott Points 20468

Étant donné que vous dites avoir une structure de dossier imbriquée, je crois que *data*/*txt ne fera pas ce dont vous avez besoin. Je suggère

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

Le /dev/null est là pour forcer grep à afficher le nom de fichier même lorsqu'il s'exécute sur un répertoire qui contient un seul fichier .txt.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X